Java 9之后maven中--add-exports和--release冲突怎么办
时间: 2023-10-06 16:10:10 浏览: 156
在 Java 9 中,新增了模块化系统,模块之间的访问需要通过 exports 和 requires 进行声明,而在 Maven 中使用 Java 9 以上版本时,可能会出现 --add-exports 和 --release 冲突的情况。
解决方法如下:
1. 升级 Maven 版本。Maven 3.5.0 以后的版本已经支持 Java 9 的模块化系统,可以避免这个问题。
2. 使用 Maven 的 Compiler Plugin。在 pom.xml 文件中配置 Compiler Plugin,使用 release 参数指定编译版本,如下所示:
```xml
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>9</source>
<target>9</target>
</configuration>
</plugin>
</plugins>
</build>
```
3. 使用 --add-exports 参数。在命令行中使用 --add-exports 参数指定模块之间的访问,如下所示:
```
javac --add-exports <module>/<package>=<target-module> <source-file>
```
其中,<module>/<package> 表示源模块和包名,<target-module> 表示目标模块。该方法适用于需要手动编译的情况。
以上是解决冲突的几种方法,可以根据具体情况选择适合的方法。
阅读全文