我想从命令行使用mvn dependency:analyze
来手动检查依赖项问题。问题是我找不到在pom.xml
中配置行为的方法。必须在命令行中提供所有参数。
所以我必须始终使用
mvn dependency:analyze -DignoreNonCompile
我缺少的是在插件配置中设置ignoreNonCompile
中pom.xml
的方法。
这样的事情:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>analyze</id>
<goals>
<goal>analyze</goal>
</goals>
<configuration>
<ignoreNonCompile>true</ignoreNonCompile>
</configuration>
</execution>
</executions>
</plugin>
但这不起作用。
如果我使用
<goal>analyze-only</goal>
然后在构建期间运行插件,并使用配置。但我不想让它在构建中运行,只需手动请求。手动运行不会遵循参数。
我可以在名为pom.xml
的{{1}}中设置属性,但这会在构建中设置此参数并手动运行。
有没有办法只配置ignoreNonCompile
的行为?
答案 0 :(得分:2)
问题是您在<execution>
块内设置了配置。这意味着配置将仅绑定到该特定执行;但是,在命令行mvn dependency:analyze
上调用时,它不会调用该执行。相反,它将使用默认的全局配置调用默认执行插件。
ignoreNonCompile
是该插件的有效配置元素。你必须使用
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<configuration>
<ignoreNonCompile>true</ignoreNonCompile>
</configuration>
</plugin>
如果您不想为上述所有执行定义全局配置,您可以保留特定于执行的配置,但是您需要告诉Maven to explicitely run that execution:
mvn dependency:analyze@analyze
其中analyze
是执行ID:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>analyze</id> <!-- execution id used in Maven command -->
<goals>
<goal>analyze</goal>
</goals>
<configuration>
<ignoreNonCompile>true</ignoreNonCompile>
</configuration>
</execution>
</executions>
</plugin>