Maven概念
maven的作用:
- Jar包的管理(父项目管理jar包版本,子项目添加jar包依赖);
- 工程之间的依赖管理(聚合工程中子项目的相互依赖);
- 自动打包(聚合工程会有多个项目,可以很方便的打包,以及编译插件配置)
Maven的常见打包方式:jar、war、pom
Pom工程一般都是父工程,管理jar包的版本、maven插件的版本、统一的依赖管理。聚合工程。
配置环境变量
maven官网下载Maven工具安装好后配置环境变量。
在系统变量里找到path,点击编辑,
把;%MAVEN_HOME%in;
配置文件
配置conf/setting.xml文件
配置本地仓库路径
<localRepository>D:Programmer_QYapache-maven-3.5.0 epository</localRepository>
配置远程仓库地址
<mirror>
<!--该镜像的id-->
<id>nexus-aliyun</id>
<!--该镜像用来取代的远程仓库,central是中央仓库的id-->
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<!--该镜像的仓库地址,这里是用的阿里的仓库-->
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
<mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror> <mirror> <id>uk</id> <mirrorOf>central</mirrorOf> <name>Human Readable Name for this Mirror.</name> <url>http://uk.maven.org/maven2/</url> </mirror> <mirror> <id>CN</id> <name>OSChina Central</name> <url>http://maven.oschina.net/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror> <mirror> <id>nexus</id> <name>internal nexus repository</name> <!-- <url>http://192.168.1.100:8081/nexus/content/groups/public/</url>--> <url>http://repo.maven.apache.org/maven2</url> <mirrorOf>central</mirrorOf> </mirror>
检测Maven
mvn help:system
eclipse配置maven目录以及setting.xml路径。
IDEA版本和Maven版本对应
IDEA2017 -> Maven 3.5.0
IDEA2018 -> Maven 3.5.4
如果maven版本过高会报错,详细。
打包
mvn clean compile #重新编译 mvn clean package #重新打包
带主类jar
这样打包出来的jar包需要用jar -classpath *.jar com.*.*来运行,如果想带MainClass。需要在pom.xml中添加如下配置
<plugin> <artifactId>maven-jar-plugin</artifactId> <version>3.0.2</version> <configuration> <archive> <manifest> <mainClass>com.gmtx.MainClass</mainClass> <addClasspath>true</addClasspath> <classpathPrefix>lib/</classpathPrefix> </manifest> </archive> <classesDirectory> </classesDirectory> </configuration> </plugin>
带依赖jar
<plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <!--打包时连同依赖包一起打包--> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> </configuration> </plugin>
使用此插件进行打包时,不再是使用mvn package 命令,而是使用mvn assembly:assembly命令。执行成功后会在target文件夹下多出一个以-jar-with-dependencies结尾的jar包。这个jar包中就包含了当前项目的所有依赖包。