在Java9中使用带有Maven的Incubator Http类

我在用什么

Java 9 + Maven + HttpClient(来自java 9) jdk.incubator.http.HttpClient

问题

使用maven构建项目时出现以下错误

 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.7.0:compile (default-compile) on project Core: Compilation failure: Compilation failure: [ERROR] Foo.java:[4,21] package jdk.incubator.http is not visible 

Foo第4行是

 import jdk.incubator.http.HttpClient; 

的pom.xml

  4.0.0  me.bar foo 0.0.0-SNAPSHOT  Core  ${project.artifactId} ${project.basedir}/src   org.apache.maven.plugins maven-clean-plugin 3.0.0   org.apache.maven.plugins maven-compiler-plugin 3.7.0  9 9    org.apache.maven.plugins maven-shade-plugin 3.1.0   package  shade   true       

注意

对不起,如果您认为这有一个不经意的修复,我对maven不太好,从来没有必须处理孵化器课程。 我搜索了错误,但没有找到任何有用的东西。 谢谢您的帮助。

在创建模块时 ,您需要在包的最顶层创建一个module-info.java类,其后将包括

 module yourModule { requires jdk.incubator.httpclient; } 

确保模块jdk.incubator.http导出的包jdk.incubator.http对您的模块可见。

或者 ,要创建常规类路径应用程序,您可以

编译使用: –

  maven-compiler-plugin 3.7.0  9 9  --add-modules jdk.incubator.httpclient    

运行使用: –

 java -jar --add-modules=jdk.incubator.httpclient yourJar.jar