maven基本使用
一、简介
- 基于Ant 的构建工具,Ant 有的功能Maven 都有,额外添加了其他功能.
- 本地仓库:计算机中一个文件夹,自己定义是哪个文件夹.
- 中央仓库:网上地址https://repo1.maven.org/maven2/maven (因为国外网站访问较慢,通常会改变)
二、配置文件
-
下载maven包
-
配置环境变量,创建MAVEN_HOME
javaMAVEN_HOME -- 目录:maven>bin 在path下添加:%MAVEN_HOME%
-
修改conf/settings.xml中配置文件信息
-
修改本地仓库存储位置
html<localRepository>D:/maven/r2/myrepository</localRepository>
-
修改jdk版本(和本地运行配置jdk版本要一致)
html<profile> <id>jdk-1.8</id> <activation> <activeByDefault>true</activeByDefault> <jdk>1.8</jdk> </activation> <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion> </properties> </profile>
-
修改中央仓库镜像(阿里云),可以包含多个仓库
html<mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror>
-
三、项目结构
maven基本标签
-
groupId> : 公司名.公司网址倒写
-
artifactId>: 项目名
-
version>: 版本
-
packaging> :打包方式
4.1 (pom :父项目 ) | (war :web项目) | (jar:java项目)
-
dependencyManagement> 写在父项目 表示私有化 子类项目不能直接继承 可以继承父项目的版本号 ,(父项目也不会引用下载jar包)
html
<properties>
<spring-version>5.1.6.RELEASE</spring-version>
</properties>
- 由父类声明,统一管理所有子项目的版本号
- 子标签名称自定义
- ${名字} 引用标签的值
实践(例子)
声明:如需要依赖,前提需要将父工程 install本地或者上传私库
如:子工程直接引用,父工程的mysql
xml
<!--父工程 pom-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.10</version>
<relativePath/>
</parent>
<groupId>com.example</groupId><!--基本字段-->
<artifactId>deploye-test</artifactId>
<version>1.0.1-SNAPSHOT</version><!--基本字段-->
<name>deploye-test</name>
<description>deploye-test</description><!--基本字段-->
<packaging>pom</packaging><!--基本字段-->
<properties>
<java.version>8</java.version>
<mysql.version>5.1.47</mysql.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
子工程---可直接引用父工程的version
xml
<parent>
<groupId>com.example</groupId>
<artifactId>deploye-test</artifactId>
<version>1.0.1-SNAPSHOT</version>
</parent>
<groupId>com.example</groupId>
<artifactId>demo3-dependence-test</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo3-dependence-test</name>
<description>demo3-dependence-test</description>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
</dependencies>
四、pom插件配置
-
tomcat 插件配置
-
可以动态分布式发布项目
-
减少tomcat 的压力
-
pom.xml 如下:
html<build> <plugins> <!-- tomcat插件控制 --> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <configuration> <!-- 控制端口 --> <port>8001</port> <!-- 控制发布项目名 --> <path>/reception</path> <uriEncoding>UTF-8</uriEncoding> </configuration> </plugin> <!-- maven插件控制 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> <encoding>utf-8</encoding> </configuration> </plugin> </plugins> </build>
-
-
修改资源加载配置
-
默认maven项目只加载 " src/main/resources " 下的xml
-
代码如下:
html<build> <!-- 修改解析xml文件默认路径 --> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> <resource> <directory>src/main/resources</directory> <includes> <include>**/*.xml</include> <include>**/*.properties</include> </includes> </resource> </resources> </build>
-
五、热部署
-
将项目部署到 服务器上
-
修改tomat/conf/tomcat-users.xml 添加
html<role rolename="manager-gui"/> <role rolename="manager-script"/> <!-- 设置账户 密码--> <user username="tomcat" password="tomcat" roles="manager-gui,manager-script"/>
-
在maven 项目的pom.xml 中tomcat 插件的里配置
html<plugins> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <configuration> <!-- 控制tomcat 端口号--> <port>80</port> <!-- 项目发布到tomcat 后的名称--> <!-- / 相当于把项目发布名称为ROOT --> <!-- /abc --> <path>/jqk</path> <username>tomcat</username> <password>tomcat</password> <!--服务器的ip--> <url>http://192.168.75.133:8080/manager/text</url> </configuration> </plugin> </plugins>
-
右键项目--> run as --> maven build(以前写过,选择第二个) -->输入
- tomcat7:deploy 第一次发布
- tomcat7:redeploy 不是第一次发布.
六、maven 外部手动加载jar
如为文件夹,则直接在dos命令mvn install即可
shell
mvn install:install-file
-DgroupId=com.aliyun #坐标
-DartifactId=aliyun-sdk-vod-upload #名称
-Dversion=1.4.12 #版本
-Dpackaging=jar #类型
-Dfile=aliyun-java-vod-upload-1.4.12.jar#下载好的jar名
例子
xml
例:
mvn install:install-file -Dfile=E:\taobao-sdk-java-auto-20200403.jar -DgroupId=com.taobao -DartifactId=taobao-sdk-java-auto -Dversion=1.0.1 -Dpackaging=jar
<!--对应pom坐标 -->
<dependency>
<groupId>com.taobao</groupId>
<artifactId>taobao-sdk-java-auto</artifactId>
<version>1.0.1</version>
</dependency>
打包方式
pom: 一般作为依赖资源的父项目使用,用来控制jar包的版本
jar: 一般使用与实际项目工程打包
war: 一般为静态资源进行打包使用war
Maven上传私服或者本地
私服上传 maven--》Lifecycle-->deploy
本地上传 maven--》Lifecycle-->install