Idea 运行报Error:java: 无效的标记: -version
问题描述
开发过程中,idea一运行就报, maven编译java项目问题(主要针对idea)报如下错误:
Error:java: 无效的标记: -version
原因是因为使用的maven的plugin中可能增加了compilerArgs的参数。如类似于如下信息:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven_compiler_plugin_version}</version>
<configuration>
<source>${java_source_version}</source>
<target>${java_target_version}</target>
<encoding>${file_encoding}</encoding>
<compilerArgs>
<arg>-J-Duser.country=US</arg>
<arg>-version</arg>
</compilerArgs>
<debug>true</debug>
<fork>true</fork>
</configuration>
</plugin>
解决办法
关键去除或覆盖掉
<compilerArgs>
<arg>-J-Duser.country=US</arg>
<arg>-version</arg>
</compilerArgs>
如果是父子工程。在工程里覆盖对应的plugin即可,或者加入pluginManagement管理。
pluginManagement方式
其中需要制定对应的 java.version的properties。
<properties>
<java.version>1.8</java.version>
</properties>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<debug>true</debug>
<fork>true</fork>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</pluginManagement>
plugin覆盖的方式
<properties>
<java.version>1.8</java.version>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<debug>true</debug>
<fork>true</fork>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>