我在module的官方文档中找到了 maven-jdeps-plugin 属性,其中指出:

显示包含包装的模块


  • 类型:布尔
  • 自:JDK 1.9.0
  • 必需:否
  • 用户属性:jdeps.module
  • 默认值:false


  • 尝试通过当前最小的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.

    10-08 20:09