使用以下最小pom.xml
使用Java9探索maven-jdeps-plugin:3.1.0
: -
<dependencies>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.9.0</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<source>1.9</source>
<target>1.9</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jdeps-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<goals>
<goal>jdkinternals</goal> <!-- verify main classes -->
<goal>test-jdkinternals</goal> <!-- verify test classes -->
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
执行
mvn install
我最终得到一个详细错误,内容如下: -
[INFO] Error: log4j-api-2.9.0.jar is a multi-release jar file but --multi-release option is not set [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 3.389 s [INFO] Finished at: ... [INFO] Final Memory: 12M/41M [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal org.apache.maven.plugins:maven-jdeps-plugin:3.1.0:jdkinternals (default) on project maven-jigsaw: [ERROR] Exit code: 2 [ERROR] Command line was: /bin/sh -c '/Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home/bin/jdeps' '-cp' '.../.m2/repository/org/apache/logging/log4j/log4j-api/2.9.0/log4j-api-2.9.0.jar' '../maven/target/classes'
我无法在Maven官方网站上详细列出的jdeps:jdkinternals
目标中找到与--multi-release
旗帜相关的更多相关信息,甚至在Oracle帮助中记录的jdeps
tool中心。
有人可以在maven-jdeps-plugin
中对这个实现有所了解吗?有没有办法解决这个问题(设置--multi-release
选项)?
答案 0 :(得分:4)
这是用户错误。请输入jdeps - ?在命令行上。你会看到你需要输入
jdeps --multi-release 9 ~/.m2/repository/org/apache/logging/log4j/log4j-api/2.9.1/log4j-api-2.9.1.jar
答案 1 :(得分:1)
关于插件本身,以下配置有效。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jdeps-plugin</artifactId>
<version>3.1.1</version>
<executions>
<execution>
<goals>
<goal>jdkinternals</goal> <!-- verify main classes -->
<goal>test-jdkinternals</goal> <!-- verify test classes -->
</goals>
</execution>
</executions>
<configuration>
<multiRelease>9</multiRelease> <!-- Check this out -->
</configuration>
</plugin>
答案 2 :(得分:0)
最终在comment from Nicolai的帮助下。我最后可以将其分为两个不同的问题: -
maven-jdeps-plugin
我向其跟踪器提出的小问题, Logging jdeps Errors as INFO.
<击> 撞击>
另一方面,当我尝试在jdeps
上执行命令log4j-api-2.9.1.jar
as -
➜ jdeps ~/.m2/repository/org/apache/logging/log4j/log4j-api/2.9.1/log4j-api-2.9.1.jar
我最终收到以下错误: -
错误:log4j-api-2.9.1.jar是一个多版本jar文件,但未设置--multi-release选项
可以在 --multi-release option not set for the multi-release jar.
跟踪此内容 击><击> 撞击>
编辑 : - @rgoers
回答了使用命令行工具的正确方法更新 : - 链接的maven插件错误会转换为新的功能请求,并且可能会包含在插件的未来版本中。