我正在使用ModiTect来Jlink我的Java应用程序。在README和两个示例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
注入不具备它们的依赖项中,但我认为这与此问题无关。当我运行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)