【问题标题】:Preventing default-compiler to run in Maven防止默认编译器在 Maven 中运行
【发布时间】:2019-11-08 07:46:41
【问题描述】:

我正在尝试为 maven 编写一个编译器插件:

            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <inherited>true</inherited>
                <executions>
                    <execution>
                        <id>my-custom-compiler</id>
                        <goals>
                            <goal>compile</goal>
                        </goals>
                        <configuration>
                            <source>1.8</source>
                            <target>1.8</target>
                            <compilerVersion>1.8</compilerVersion>
                            <compilerArgument>-Xdiags:verbose</compilerArgument>
                            <compilerArgument>-proc:none</compilerArgument>
                            <compilerArgument>-Xlint:unchecked</compilerArgument>
                            <excludes>
                                <exclude>${project.basedir}\src\main\java\testfiles\</exclude>
                            </excludes>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

现在当我运行 mvn clean install 时,我看到:

[INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile)

默认编译器仍在执行。总是这样吗?或者有没有办法停止它的执行。它没有伤害任何东西。但是编译相同的 2000 个奇怪的文件会减慢构建速度。

【问题讨论】:

    标签: maven pom.xml maven-compiler-plugin


    【解决方案1】:

    你为什么不把你的配置添加到默认编译中:

            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <inherited>true</inherited>
                        <configuration>
                            <source>1.8</source>
                            <target>1.8</target>
                            <compilerVersion>1.8</compilerVersion>
                            <compilerArgument>-Xdiags:verbose</compilerArgument>
                            <compilerArgument>-proc:none</compilerArgument>
                            <compilerArgument>-Xlint:unchecked</compilerArgument>
                            <excludes>
                                <exclude>${project.basedir}\src\main\java\testfiles\</exclude>
                            </excludes>
                        </configuration>
            </plugin>
    

    然后clean install 将运行您的配置。

    【讨论】:

    • 是的,这就是我现在正在做的事情,但我只是想知道是否可以以任何方式阻止“默认”。
    • 但是为什么要避免它而不是仅仅覆盖它呢?您可以尝试为此使用&lt;skipMain&gt;,但我不明白您为什么要编写自己的编译调用并停用原始调用,而不是仅仅覆盖原始调用。
    • 对不起,我完全忘记了这一点。我修改了默认的,然后按照你的要求继续。我问的唯一原因是找出是否有办法做到这一点。感谢您的帮助!!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多