Maven
1.依赖管理
2.构建流程
clean-compile-test-package
mvn clean
mvn compile test
3.eclipse中的maven只能在eclipse中使用,如果想要单独使用maven则需要去官网下载maven。
步骤如下:
1.去官网下载maven.
2.下载完maven进行解压
3.解压完后根据平台不同需要做不同的操作。
windows平台:
在环境变量中添加mvn的bin到path中
在环境变量中新建M2_HOME设置到maven的安装目录
Mac平台:
打开~/.bash_profile文件
在文件中
export M2_HOME=maven安装目录
export M2=Path:M2
Maven的几个概念:LifeCycle、Phase、Goal
使用Maven构建项目就是执行LifeCycle
执行LifeCycle就是按照顺序执行一系列Phase(clean、compile、test、package)
执行Phase就是执行一系列的Goal
Goal是最小的执行单元
注意:在执行mvn package时,不会把项目中以来的包打进去,所以如果直接使用mvn package打完的包运行程序有可能会找不到依赖包里面的类。
Maven中所有的命令Phase都是通过具体的插件Plugins来执行相应数量的Goal来完成的。
Maven的常用标准Plugins如下图所示:
如果标准的插件没办法满足你的需求,那么我们可以自定义插件。
例如:mvn自带的package没办法打包依赖的其他包。这时,可以使用自定义插件。
mvn-shade-plugin:解决打包依赖包的问题
步骤如下:
1.在浏览器中搜索maven shade plugin excutable jar usage
2.在网页中复制部分xml代码,如下所示。复制到对应项目的pom.xml文件中。
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>org.sonatype.haven.HavenCli</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
3.替换上述代码中的mainClass为自己的主类
4.保存项目,打开命令行,执行mvn clean package
5.打开项目目录,找到target会发现两个jar包。
6.使用命令行java -jar jar包(内容比较多的jar包)运行已经将依赖包打进去的包。
Mavn常用插件
模块依赖
在一个项目中可以拆分成多个模块,不同模块间可能存在依赖关系。
解决依赖的步骤如下:
1.在TestMaven的pom.xml文件中添加对GreetingMaven的依赖
2.在TestMaven需要用到GreetingMaven类的时候直接使用
父依赖
模块间依赖相同时,可以抽离出父依赖。
1.抽离出相同的依赖,放到父依赖的pom.xml文件中。
注意事项:父依赖的pom文件中,packaging需要设置为pom
2.依赖父依赖的单独模块pom.xml文件中添加parent标签。
3.其他的模块如果依赖其他的子模块,在pom文件中还是需要体现的。
注意事项:A模块依赖B模块,那么A模块需要B的jar包才能正常编译。
解决方案