[英]What is the basic difference between maven compiler plugin and maven surefire plugin?
[英]What is the difference between maven compiler plugin and maven toolchains plugin?
我不得不将一些遗留代码集成到我的 maven 版本中,所以我使用了 maven 推荐的工具链插件来更改 java 版本:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-toolchains-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<goals>
<goal>toolchain</goal>
</goals>
</execution>
</executions>
<configuration>
<toolchains>
<jdk>
<version>1.5</version>
</jdk>
</toolchains>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.10.0</version>
<configuration>
<compilerArgs>
<arg>-Xmaxerrs</arg>
<arg>1000</arg>
</compilerArgs>
</configuration>
</plugin>
然后我遇到了最大 100 个编译错误问题,它需要将特殊选项传递给 javac,我发现我只用 maven 编译器就可以做到:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.10.0</version>
<configuration>
<fork>true</fork>
<compilerVersion>1.5</compilerVersion>
<executable>C:\Java\jdk-1.5.0_22\bin\javac.exe</executable>
<source>1.5</source>
<target>1.5</target>
<compilerArgs>
<arg>-Xmaxerrs</arg>
<arg>1000</arg>
</compilerArgs>
</configuration>
</plugin>
两个片段产生相同的结果:java 编译器从 maven 默认更改为 java 1.5。 两者运行的时间大致相同,因此没有明显的性能差异。 我想知道两者之间是否有任何优势,以便我知道何时使用它们。
他们做不同的事情:
这在各个插件的文档中进行了解释。
请注意,并非所有插件都是“工具链感知”的,但编译器插件是。
... 一个比另一个有什么好处
好吧,有些事情你可以用一个而不是另一个来做,反之亦然。 例如,您不能使用工具链插件设置 Java 编译器选项。
然而,它们并不相互排斥。 您可以在同一个 POM 文件中使用两者。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.