配置Maven的编译器插件,所以它的工作原理(春季启动的项目)都与JDK-8和JDK-12

洪扎齐德克:

是否有可能配置maven-compiler-plugin所以它的工作原理与JDK 8 JDK 12?我不知道这是否是相关的,但它是一个春天启动的项目。

1.配置

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.8.0</version>
    <configuration>
        <source>1.8</source>
        <target>1.8</target>
        <release>8</release>
    </configuration>
</plugin>

是JDK-12下编译,但在JDK-8失败:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile (default-compile) on project xxxx: 
Fatal error compiling: invalid flag: --release 

2.配置

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.8.0</version>
    <configuration>
        <source>1.8</source>
        <target>1.8</target>
    </configuration>
</plugin>

这忽略了<release>8</release>参数是可编译JDK-8,但在JDK-12失败:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile (default-compile) on project xxxx:
Fatal error compiling: CompilerException: NullPointerException

所有可能的互联网资源,我发现建议使用<release>8</release>参数能够避免JDK-12下的错误,但这将停用JDK-8的compilability。

我们的源和目标兼容性的Java 8,我们需要建立一个与好老平原的代码mvn clean install(不提供个人资料!)对开发商的机器与JDK-12,也对詹金斯,在这里我们还是要保持JDK -8,而我们也有一些保守的开发商:)

khmarbaise:

首先你应该这样定义pluginManagement内Maven的编译器插件:

  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.8.0</version>
        </plugin>
      <...>
    ...

进而使用配置文件被自动激活,看起来像这样:

  <profiles>
    <profile>
      <id>jkd-12-compile</id>
      <activation>
        <jdk>12</jdk>
      </activation>
      <build>
        <pluginManagement>
          <plugins>
            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-compiler-plugin</artifactId>
              <configuration>
                <release>8</release>
              </configuration>
            </plugin>
          </plugins>
        </pluginManagement>
      </build>
    </profile>
    <profile>
      <id>jdk-8-compile</id>
      <activation>
        <jdk>[,8]</jdk>
      </activation>
      <build>
        <pluginManagement>
          <plugins>
            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-compiler-plugin</artifactId>
              <configuration>
                <source>8</source>
                <target>8</target>
              </configuration>
            </plugin>
          </plugins>
        </pluginManagement>
      </build>
    </profile>
  </profiles>

一位不愿意通常mvn clean install是没有必要的。你通常只需要mvn clean verify...

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章