发布时间:2022-12-21 12:00
我们看别人代码的时候,看到build的plugins写一大堆,我也不晓得干嘛的,我也不敢问。不写这些,感觉也没大事情
现在想来,还是搞明白的好
官方文档
https://maven.apache.org/plugins/maven-compiler-plugin/compile-mojo.html
这个插件的目的是指定编译器
org.apache.maven.plugins
maven-compiler-plugin
3.1
1.8
UTF-8
true
true
true
true
1.3
128m
512m
-verbose -bootclasspath ${java.home}\lib\rt.jar
正常情况下,大家开发环境和编译环境的编译器一致的话,貌似也不需要配置这个
我们需要一个胖jar
我接手了一个项目,打的包只有700k,依赖包很多,每次发布,公司的校验平台会吧一些漏洞的jar报警,这时候需要升级这些jar,每次都有很多,一个个拷贝到测试环境堡垒机里面的时候,我真的和吃屎一样,然后又要拷贝到生产环境堡垒机,感觉又吃了一遍
${project.artifactId}
org.springframework.boot
spring-boot-maven-plugin
${project.artifactId}
org.springframework.boot
spring-boot-maven-plugin
repackage
Maven本身并不是一个单元测试框架,它只是在构建时通过maven-surefire-plugin插件来执行JUnit或者TestNG的测试用例。也可以称为测试运行器(Test Runner),它能兼容JUnit 3、JUnit 4 ,Junit 5以及TestNG
我们可以跳过,当然idea里面也可以指定跳过。
org.apache.maven.plugin
maven-compiler-plugin
2.1
true
org.apache.maven.plugins
maven-surefire-plugin
2.5
true
真的猛士敢于面对测试!
跳过不是我们的风格,我们不但不跳过,还特么生成测试报告和覆盖率报告呢
这个插件会自动扫描(默认为src/test/java/)
**/Test*.java:任何子目录下所有命名以Test开关的Java类。
**/*Test.java:任何子目录下所有命名以Test结尾的Java类。
**/*TestCase.java:任何子目录下所有命名以TestCase结尾的Java类。
接手的项目,总有奇思妙想的命名,我们必须能引入/排除
org.apache.maven.plugins
maven-surefire-plugin
2.5
**/*Tests.java
**/*JUnit.java
**/*ServiceTest.java
**/TempDaoTest.java
默认情况下,maven-surefire-plugin会在项目的target/surefire-reports目录下生成两种格式的错误报告。
简单文本格式——内容十分简单,可以看出哪个测试项出错。
与JUnit兼容的XML格式
这玩意儿得搭配jacoco,jmockdata等等一起玩耍
这是处理jar包依赖的插件
当jar包出现漏洞报警的时候,因为依赖的太复杂,需要打印出来
mvn dependency:tree、mvn dependency:analyze
我就习惯
mvn dependency:tree >tree.txt
这样就可以得到一个文件,可以分析了
如果无法得到胖jar的时候,我们可以用copy命令把依赖包考到一个文件夹下
org.apache.maven.plugins
maven-dependency-plugin
2.8
package
copy
包含级别
compile
test
这2个只能有一个
org.apache.camel
camel-spring
还能指定group或者artifact
org.apache.maven.plugins
maven-dependency-plugin
2.8
package
copy-dependencies
compile
还可以从别的地方考到本项目里面
org.apache.maven.plugins
maven-dependency-plugin
2.8
package
unpack
org.slf4j
slf4j-log4j12
1.7.7
junit
junit
4.11
${project.build.directory}/libs
lib
junit要装逼拷到libs下,如果自己不加outputDirectory,会沿用外面的outputDirectory拷到lib下