我正在使用ModiTect来 Jlink 我的 Java 应用程序。按照自述文件和两个示例undertow和vert.x,我将其添加到我的pom.xml
:
<execution>
<id>create-runtime-image</id>
<phase>package</phase>
<goals>
<goal>create-runtime-image</goal>
</goals>
<configuration>
<modulePath>
<path>${project.build.directory}/modules</path>
</modulePath>
<modules>
<module>tech.dashman.dashman</module>
</modules>
<outputDirectory>${project.build.directory}/jlink-image</outputDirectory>
</configuration>
</execution>
我还使用 ModiTect 将module-info.java
s 注入到没有它们的依赖项中,但我认为这与这个问题无关。当我运行mvn package
它失败并出现以下错误:
[ERROR] Error: Module tech.dashman.dashman not found
那就是这个 pom.xml 的模块。为什么找不到它(当示例似乎表明它会自动找到时)?
添加模块路径使其可找到:
<modulePath>
<path>${project.build.directory}/modules</path>
<path>${project.build.directory}/classes</path>
</modulePath>
但我必须指向目录classes
中的target
子目录,因为如果我指向以便可以找到target
该文件,我会收到此错误:jar
[ERROR] Error: Two versions of module tech.dashman.dashman found in C:\Users\pupeno\Documents\Dashman\code\dashman\target (dashman-1.0.0-beta.2.jar and classes)