我在module
的官方文档中找到了 maven-jdeps-plugin
属性,其中指出:
显示包含包装的模块
尝试通过当前最小的
pom.xml
来使用它,如下所示:<build>
<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>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jdeps-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<apiOnly>false</apiOnly>
<failOnWarning>true</failOnWarning>
<module>true</module>
</configuration>
<executions>
<execution>
<goals>
<goal>jdkinternals</goal> <!-- verify main classes -->
<goal>test-jdkinternals</goal> <!-- verify test classes -->
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
执行时我的项目(名为sparkjdk9)的构建
mvn clean install
结果进入这些日志:
[INFO] --- maven-jdeps-plugin:3.1.0:jdkinternals (default) @ sparkjdk9 ---
[INFO]
Error: unknown option: -M
Usage: jdeps <options> <path ...>]
use -h, -?, -help, or --help for a list of possible options
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.649 s
[INFO] Finished at: ...
[INFO] Final Memory: 13M/44M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-jdeps-plugin:3.1.0:jdkinternals (default) on project sparkjdk9:
[ERROR] Exit code: 2
[ERROR] Command line was: /bin/sh -c '/Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home/bin/jdeps' '-M' '.../sparkjdk9/target/classes'
在
jdeps
工具中进一步寻找类似的标志,我可以看到错误是有道理的,因为在使用中没有这样的标志-M
。问:此属性的用途是什么?如何使用?
最佳答案
参见https://github.com/apache/maven-plugins/blob/trunk/maven-jdeps-plugin/src/main/java/org/apache/maven/plugin/jdeps/AbstractJDepsMojo.java#L322-M
曾经是模块参数,但是似乎在此期间它已被重命名为-m
/ --module
。
更新:应该使用Maven JDeps插件的3.1.1版本以及跟踪器来解决此问题](请参阅https://github.com/apache/maven-plugins/blob/trunk/maven-jdeps-plugin/src/main/java/org/apache/maven/plugin/jdeps/AbstractJDepsMojo.java#L322-M
曾经是模块参数,但是似乎在此期间它已被重命名为-m
/ --module
。
更新:应该使用Maven JDeps插件的3.1.1版本解决此问题,方法如下by the tracker.