首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >maven编译器插件和maven工具链插件有什么区别?

maven编译器插件和maven工具链插件有什么区别?
EN

Stack Overflow用户
提问于 2022-05-02 00:00:03
回答 1查看 880关注 0票数 0

我必须将一些遗留代码集成到maven构建中,因此我使用了maven推荐的工具链插件来更改java版本:

代码语言:javascript
复制
<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编译器就可以做到这一点:

代码语言:javascript
复制
<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。两者运行的时间大致相同,因此没有明显的性能差异。我想知道一个比另一个有什么好处,所以我知道什么时候使用每一种。

EN

回答 1

Stack Overflow用户

发布于 2022-05-02 05:14:44

他们做不同的事情:

  • 编译器插件专门配置编译您的

代码的方式(仅限于此)。

  • 工具链插件只确保其他插件都使用相同的Java工具链(即相同的JDK)来编译、运行、测试和生成javadocs等等。

这在相应插件的文档中有解释。

注意,并非所有插件都是“工具链感知的”,但编译器插件是。

...一个比另一个有好处吗?

有一些事情你可以用其中一种而不是另一种做,反之亦然。例如,不能使用工具链插件设置Java编译器选项。

然而,它们并不是相互排斥的。您可以在同一个POM文件中使用这两个文件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72081247

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档