Maven
maven 生命周期 #
- clean: 清空build的产生的内容和缓存
- compile: java编译成class
- test: 执行test
- package: 按照pom的约定打包成对应的jar/war等包
- install: 将包安装到maven的仓库,一般是本地的中心仓库中。
- deploy: 发布包
命令行打包:
mvn clean -U compile package
执行特定的测试(指定的TestClass中的TestFunc):
mvn -Dtest=xxxTestClass#xxTestFunc test
Maven带依赖jar打包 #
默认的jar包打包方式不会将dependency中的jar包打进最终的包里。war包会默认打进去。
如果我们希望实现这样的需求,我们需要使用assembly插件。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>org.example.App</mainClass> <!-- 指定启动类 -->
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution><!-- 配置执行器 -->
<id>make-assembly</id>
<phase>package</phase><!-- 绑定到package生命周期阶段上 -->
<goals>
<goal>single</goal><!-- 只运行一次 -->
</goals>
</execution>
</executions>
</plugin>
上面配置执行器的部分一直没有成功,需要手动打包才行。使用assembly:single
来代替package
mvn clean compile assembly:single