maven基本使用
- 一、简介
- 二、配置文件
- 三、项目结构
- maven基本标签
- 实践(例子)
- 四、pom插件配置
- 五、热部署
- 六、maven 外部手动加载jar
- 打包方式
- Maven上传私服或者本地
一、简介
- 基于Ant 的构建工具,Ant 有的功能Maven 都有,额外添加了其他功能.
- 本地仓库:计算机中一个文件夹,自己定义是哪个文件夹.
- 中央仓库:网上地址https://repo1.maven.org/maven2/maven (因为国外网站访问较慢,通常会改变)
二、配置文件
-
下载maven包
-
配置环境变量,创建MAVEN_HOME
MAVEN_HOME -- 目录:maven>bin 在path下添加:%MAVEN_HOME%
-
修改conf/settings.xml中配置文件信息
-
修改本地仓库存储位置
<localRepository>D:/maven/r2/myrepository</localRepository>
-
修改jdk版本(和本地运行配置jdk版本要一致)
<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>
-
修改中央仓库镜像(阿里云),可以包含多个仓库
<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包)
-
<properties> <spring-version>5.1.6.RELEASE</spring-version> </properties>
- 由父类声明,统一管理所有子项目的版本号
- 子标签名称自定义
- ${名字} 引用标签的值
实践(例子)
声明:如需要依赖,前提需要将父工程 install本地或者上传私库
如:子工程直接引用,父工程的mysql
<!--父工程 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
<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 如下:
<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
-
代码如下:
<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 添加
<role rolename="manager-gui"/> <role rolename="manager-script"/> <!-- 设置账户 密码--> <user username="tomcat" password="tomcat" roles="manager-gui,manager-script"/>
-
在maven 项目的pom.xml 中tomcat 插件的里配置
<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即可
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名
例子
例:
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