我必须将一些遗留代码集成到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>然后,我遇到了需要将特殊选项传递给javac的max 100 compile errors problem,发现我只需要使用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默认值更改为java1.5。两者运行的时间大致相同,因此没有明显的性能差异。我想知道一个比另一个有什么好处,所以我知道什么时候使用每一种。
发布于 2022-05-02 05:14:44
他们做不同的事情:
代码的方式(仅限于此)。
这在相应插件的文档中有解释。
注意,并非所有插件都是“工具链感知的”,但编译器插件是。
...一个比另一个有好处吗?
有一些事情你可以用其中一种而不是另一种做,反之亦然。例如,不能使用工具链插件设置Java编译器选项。
然而,它们并不是相互排斥的。您可以在同一个POM文件中使用这两个文件。
https://stackoverflow.com/questions/72081247
复制相似问题