首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有JDK11的maven : javac: invalid标志:--release

带有JDK11的maven : javac: invalid标志:--release
EN

Stack Overflow用户
提问于 2018-12-01 22:22:12
回答 2查看 19.6K关注 0票数 7

我正在尝试用java11建立一个简单的maven项目,因为我想让JAVA_HOME保持版本8,所以我使用maven-toolchains-plugin让maven在这个项目中使用jdk11。

虽然maven成功地为jdk-11.0.1找到了匹配的工具链,但我一直收到“javac: invalid flag:--release”。我做错了什么?

插件配置如下:

代码语言:javascript
复制
 <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.8.0</version>
    <configuration>
      <release>11</release>
    </configuration>
  </plugin>
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-toolchains-plugin</artifactId>
    <version>1.1</version>
    <executions>
      <execution>
        <goals>
          <goal>toolchain</goal>
        </goals>
      </execution>
    </executions>
    <configuration>
      <toolchains>
        <jdk>
          <version>11</version>
        </jdk>
      </toolchains>
    </configuration>
  </plugin>

工具链定义为:

代码语言:javascript
复制
 <toolchain>
   <type>jdk</type>
   <provides>
     <version>11</version>
     <id>JavaSE-1.11</id>
   </provides>
   <configuration>
     <jdkHome>C:\Program Files\Java\jdk-11.0.1\bin</jdkHome>
   </configuration>
<toolchain>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-12-01 23:39:45

正如我所发现的,配置是很好的。问题是toolchains.xml中的jdkHome指向\jdk-11.0.1\bin方向,而不是直接指向\jdk-11.0.1 .使用<jdkHome>C:\Program Files\Java\jdk-11.0.1</jdkHome>解决了这个问题。

票数 6
EN

Stack Overflow用户

发布于 2018-12-01 22:23:38

更改jdk版本基本上可以解决这个问题。替换

代码语言:javascript
复制
<version>1.11</version>

使用

代码语言:javascript
复制
<version>11</version>

但是,一定要确保您的maven使用JDK-11进行了配置,使用命令mvn -version并确认其中的Java版本。您还可以验证配置的toolchains.xml JDK。

如果您尝试使用不同版本的编译器进行编译,则需要确保在maven-compiler-plugin下执行:

代码语言:javascript
复制
<executions>
    <execution>
        <id>java11</id>
        <phase>none</phase>
        <goals>
            <goal>compile</goal>
        </goals>
        <configuration>
            <release>11</release>
            <jdkToolchain>
                <version>11</version>
            </jdkToolchain>
            <compileSourceRoots>
                <compileSourceRoot>${project.basedir}/src/main/java11</compileSourceRoot>
            </compileSourceRoots>
            <outputDirectory>${project.build.outputDirectory}/META-INF/versions/11</outputDirectory>
        </configuration>
    </execution>
</executions>

这里是上面引用的sample pom.xml

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

https://stackoverflow.com/questions/53571709

复制
相关文章

相似问题

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