我使用的是带有布局的maven项目。
src
main
java
<some-package-name>
module-info.java我使用的唯一插件是maven编译器插件,版本3.7.0。
<build>
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<source>9</source>
<target>9</target>
</configuration>
</plugin>
</plugins>
</build>当我运行命令jlink --module-path $JAVA_HOME/jmods:target --add-modules foo --output jre时,输出是Error: Two versions of module foo found in target (foo.jar and classes)
然而,当我运行jlink --module-path $JAVA_HOME/jmods:target/foo.jar --add-modules foo --output jre时,它说Error: Module foo not found
因此jlink能够看到模块的存在,但无法找到我的模块-信息。有什么东西是我与maven错过的,以使该文件在正确的地方?
发布于 2018-08-20 03:14:32
我不清楚Maven如何处理java模块,所以我无法提供完整的答案。但是我没有在图表中看到模块文件夹"foo“,这会使定位foo的模块信息类变得困难。正确的模块需要一个名为您的模块名的文件文件夹,以及一个包含“模块您的模块名{.}”内容的模块信息。
src
main
java
foo
module-info.class
the-compiled-java-classes-of-your-application 类似于上面的结构应该是朝着正确方向迈出的一步。
这假设您的模块- is . assumes是“模块foo{.}”
https://stackoverflow.com/questions/49162252
复制相似问题