Как мне запустить maven-jdeps-plugin для pom.xml?
В моем 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)
2 ответа
Так как вопрос был помечен с Java-9. Версия плагина maven jdeps 3.1.0
был официально выпущен недавно и, как утверждается, совместим с jdk9.
На официальной странице использования плагина, как указано в комментариях @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
,
Как предложил Ди Маттео в комментариях, этот конфиг исправляет это:
<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>
устарела, не работает, но быстро не выходит из строя...