我已将使用的maven-dependency-plugin
版本从2.8更改为2.10。现在,当我运行mvn dependency:tree -Dverbose
时,我看到以下警告:
[WARNING] Using Maven 2 dependency tree to get verbose output, which may be inconsistent with actual Maven 3 resolution
我正在使用的Maven版本是
Apache Maven 3.2.1 (ea8b2b07643dbb1b84b6d16e1f08391b666bc1e9; 2014-02-14T18:37:52+01:00)
-Dverbose
输出,但现在他们只添加了警告?答案 0 :(得分:10)
verbose 是否在序列化依赖关系树中包含省略的节点。请注意,此功能实际上使用Maven 2算法,并且在与Maven 3一起使用时可能会给出错误的结果。
对于版本2.10,请查看TreeMojo.java的第245行:
if ( verbose )
{
// verbose mode force Maven 2 dependency tree component use
if ( ! isMaven2x() )
{
getLog().warn( "Using Maven 2 dependency tree to get verbose output, "
+ "which may be inconsistent with actual Maven 3 resolution" );
}
dependencyTreeString =
serializeVerboseDependencyTree( dependencyTreeBuilder.buildDependencyTree( project,
localRepository,
artifactFilter ) );
}
如果未使用maven 2,它实际上会打印警告。
现在查看版本2.8的TreeMojo.java第243行:
if ( verbose )
{
// verbose mode force Maven 2 dependency tree component use
dependencyTreeString =
serializeVerboseDependencyTree( dependencyTreeBuilder.buildDependencyTree( project,
localRepository,
artifactFilter ) );
}
那里不存在警告记录,所以:
是否总是将Maven 2用于-Dverbose输出,但现在他们只添加了警告?
是的,自版本2.8以来已添加警告。
无论如何我可以修理它还是避免它?
我猜不是,这不是忽略警告日志消息或编辑源代码。
但是,正如您所看到的,Maven 2功能已在2.8中使用。希望在迁移dependency:tree -Dverbose
以使用maven 3功能时,您将在以后的版本中删除它。