jlink没有找到module-info.class

时间:2018-03-07 22:27:56

标签: java maven-3 jlink

我正在使用布局

的maven项目
var range = sheet.getRange(2, 1, sheet.getLastRow() - 1, sheet.getLastColumn());

我使用的唯一插件是maven-compiler-plugin,版本3.7.0。

src
  main
    java
      <some-package-name>
       module-info.java

当我运行命令 <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

因此jlink能够看到该模块存在,但无法找到我的module-info。是否有一些我在maven中缺少的东西可以将文件放在正确的位置?

1 个答案:

答案 0 :(得分:0)

我不清楚Maven如何处理Java模块,因此我无法提供完整的答案。但是我在图中没有看到模块文件夹“ foo”,这将使得很难找到foo的module-info.class。适当的模块需要两个都 名为your-module-name的文件夹和一个内容为“ module your-module-name {...}”的模块信息

src
   main
      java
         foo
            module-info.class
            the-compiled-java-classes-of-your-application  

类似上面的结构应该是朝正确方向迈出的一步。

这假设您的module-info.class是“ module foo {...}”