我对依赖项的“includeParents”选项感到有点困惑:Maven依赖插件的列表目标
http://maven.apache.org/plugins/maven-dependency-plugin/list-mojo.html
在我看来,pom本身的父级不包含在列表中(我的意思是我们应用目标的项目pom的父级)。这是真的吗,还是我犯了一些错误?如果是这样,有没有办法获得项目的父pom?
示例:
我使用了来自MavenCentral的org.sonatype.plugins:sisu-maven-plugin:1.4的pom。它包含对父
的引用<parent>
<groupId>org.sonatype.plugins</groupId>
<artifactId>plugins-parent</artifactId>
<version>9</version>
</parent>
但mvn dependency:list -DincludeParents=true
的结果是:
javax.inject:javax.inject:jar:1:compile
org.apache.maven:maven-artifact-manager:jar:2.0.8:compile
javax.annotation:jsr250-api:jar:1.0:compile
com.google.code.findbugs:jsr305:jar:1.3.9:compile
org.eclipse.sisu:org.eclipse.sisu.inject:jar:0.2.0:compile
org.apache.maven:maven-model:jar:2.0.8:compile
org.apache.maven:maven-plugin-registry:jar:2.0.8:compile
org.sonatype.sisu:sisu-guice:jar:no_aop:3.1.6:compile
org.apache.maven:maven-project:jar:2.0.8:compile
org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-44:compile
org.apache.maven:maven-settings:jar:2.0.8:compile
aspectj:aspectjrt:jar:1.5.3:compile
junit:junit:jar:4.8.2:test
org.apache.maven:maven-repository-metadata:jar:2.0.8:compile
org.sonatype.sisu:sisu-inject-bean:jar:2.5.3:compile
com.google.guava:guava:jar:11.0.2:compile
org.apache.maven.shared:maven-common-artifact-filters:jar:1.4:compile
org.apache.maven.wagon:wagon-provider-api:jar:1.0-beta-2:compile
org.apache.maven:maven-artifact:jar:2.0.8:compile
org.codehaus.plexus:plexus-utils:jar:3.0.15:compile
javax.enterprise:cdi-api:jar:1.0:compile
org.apache.maven:maven-plugin-api:jar:2.0:compile
org.apache.maven:maven-profile:jar:2.0.8:compile
org.codehaus.plexus:plexus-classworlds:jar:1.2-alpha-10:compile
答案 0 :(得分:1)
参数includeParents
是在Maven Dependency Plugin的版本2.8中引入的:
在依赖项解析列表中包含父poms。 [...]
- 自:2.8
但是,您启动此命令的特定Maven项目声明了该插件的2.2版本。以下是我跟踪此问题的方法:sisu-maven-plugin-1.4
作为父org.sonatype.plugins:plugins-parent:9
,其本身具有父org.sonatype.forge:forge-parent:12
,最终声明version 2.2 of the plugin ... Maven将更喜欢使用该版本它直接在项目的POM中声明。
请注意,您也可以在日志中发现这一点。在此项目上运行命令时,日志为:
[INFO] Building Sisu Maven Plugin 1.4
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-dependency-plugin:2.2:list (default-cli) @ sisu-maven-plugin ---
[INFO]
显示版本2.2是使用的版本。
因此,您只需强制使用大于2.8的版本使includeParents
参数生效,例如使用当前最新的2.10:
mvn org.apache.maven.plugins:maven-dependency-plugin:2.10:list -DincludeParents