–add-modules仅在编译时

我正在用maven和java-9构建我的项目。 我在我的pom.xml文件中添加了:

  maven-compiler-plugin ${maven-compiler-plugin.version}  ${java.version} ${java.version}  --add-modules java.xml.bind    

但是,要运行应用程序,我必须像这样运行它:

 java -jar --add-modules java.xml.bind my-app.jar 

有没有办法构建应用程序,从没有--add-modules java.xml.bind的命令行运行到java命令行参数?

我刚才回答了这个问题,我在这里回答了这个问题 ,以便使用Maven在Java-9中公开非java.se软件包。

添加的部分特别关注使用独立版本的java.xml.* API。 为了适应你可能开始消耗对jaxb-api:2.3.0的依赖jaxb-api:2.3.0 ,它可以作为模块加载,也可以从类路径执行。 您需要进行的更改是将以下内容添加到依赖项列表中:

  javax.xml.bind jaxb-api 2.3.0  

这样,您可以确保迁移到模块的独立API,并远离已弃用的代码段。