2016-02-04 48 views
2

在我pom.xml我已經添加了Maven的jdeps-插件:如何在pom.xml上運行maven-jdeps-plugin?

<project ...> 
    <groupId>org.optaplanner</groupId> 
    <artifactId>optaplanner-examples</artifactId> 
    <!-- packaging is the default, so "jar" --> 
    ... 
    <build> 
    <plugins> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-jdeps-plugin</artifactId> 
     <version>3.0.0</version> 
     <goals> 
      <goal>jdkinternals</goal> 
      <goal>test-jdkinternals</goal> 
     </goals> 
     </plugin> 
    </plugins> 
    </build> 
</project> 

但是當我跑這與JDK 8和Maven 3.3.3,的jdeps插件不會做任何檢查

$ mvn clean install -DskipTests | grep plugin 
[INFO] --- maven-clean-plugin:2.6.1:clean (default-clean) @ optaplanner-examples --- 
[INFO] --- maven-enforcer-plugin:1.4:enforce (enforce-plugin-versions) @ optaplanner-examples --- 
[INFO] --- maven-enforcer-plugin:1.4:enforce (enforce-java-version) @ optaplanner-examples --- 
[INFO] --- maven-enforcer-plugin:1.4:enforce (enforce-maven-version) @ optaplanner-examples --- 
[INFO] --- maven-enforcer-plugin:1.4:enforce (ban-uberjars) @ optaplanner-examples --- 
[INFO] --- maven-checkstyle-plugin:2.15:check (validate) @ optaplanner-examples --- 
[INFO] --- maven-enforcer-plugin:1.4:enforce (no-managed-deps) @ optaplanner-examples --- 
[INFO] --- buildnumber-maven-plugin:1.3:create (get-scm-revision) @ optaplanner-examples --- 
[INFO] --- build-helper-maven-plugin:1.9.1:add-source (default) @ optaplanner-examples --- 
[INFO] --- build-helper-maven-plugin:1.9.1:parse-version (default) @ optaplanner-examples --- 
[INFO] --- maven-resources-plugin:2.7:resources (default-resources) @ optaplanner-examples --- 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ optaplanner-examples --- 
[INFO] --- maven-enforcer-plugin:1.4:enforce (enforce-direct-dependencies) @ optaplanner-examples --- 
[INFO] --- maven-resources-plugin:2.7:testResources (default-testResources) @ optaplanner-examples --- 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ optaplanner-examples --- 
[INFO] --- maven-surefire-plugin:2.18.1:test (default-test) @ optaplanner-examples --- 
[INFO] --- maven-jar-plugin:2.6:jar (default-jar) @ optaplanner-examples --- 
[INFO] --- maven-jar-plugin:2.6:test-jar (test-jar) @ optaplanner-examples --- 
[INFO] --- maven-source-plugin:2.4:jar-no-fork (attach-sources) @ optaplanner-examples --- 
[INFO] --- maven-source-plugin:2.4:test-jar-no-fork (attach-test-sources) @ optaplanner-examples --- 
[INFO] --- maven-failsafe-plugin:2.18.1:integration-test (default) @ optaplanner-examples --- 
[INFO] --- maven-failsafe-plugin:2.18.1:verify (default) @ optaplanner-examples --- 
[INFO] --- maven-install-plugin:2.5.2:install (default-install) @ optaplanner-examples --- 

額外的信息:

$ echo $JAVA_HOME 
/usr/lib/jvm/java-openjdk 
$ /usr/lib/jvm/java-openjdk/bin/java -version 
openjdk version "1.8.0_71" 
OpenJDK Runtime Environment (build 1.8.0_71-b15) 
OpenJDK 64-Bit Server VM (build 25.71-b15, mixed mode) 
+1

是你的代碼片段正確嗎?目標不能存在於maven插件的xml結構中,它們應該是執行/執行的一部分 –

+0

我可以發誓,它們可以直接嵌套在maven中......愚蠢的錯誤。太糟糕了Maven不會快速失敗,但只是忽略它。 –

+1

這可能是爲什麼插件沒有被執行,你需要一個執行來指定目標作爲構建的一部分 –

回答

0

正如迪馬特奧的意見建議,這個配置修復它:

<build> 
<plugins> 
    <plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-jdeps-plugin</artifactId> 
    <version>3.0.0</version> 
    <executions> 
     <execution> 
     <goals> 
      <goal>jdkinternals</goal> 
      <goal>test-jdkinternals</goal> 
     </goals> 
     </execution> 
    </executions> 
    </plugin> 
</plugins> 
</build> 

<goals>直屬<plugin>用法deprecated, doesn't work但不會失敗快...

2

由於這個問題被標記與Java-9。 maven jdeps plugin版本3.1.0正式爲released recently,並且聲稱也是compatible with jdk9

官方usage page of the plugin爲在@khmarbaise以及評論中指出,規定執行情況:

<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> 
    <configuration> 
     ... 
    </configuration> 
</plugin> 

其中

如果有一個內部的API檢測到任何使用,構建將停止 並失敗。

它可以使用標記failOnWarning配置,其標準值設置爲true

相關問題