有谁可以解释为什么我会在maven-dependency-plugin上的树和build-classpath之间获得不同的输出顺序?
我正在运行
mvn -pl releases org.apache.maven.plugins:maven-dependency-plugin:2.6:tree -Dtokens=whitespace -outputFile=tree.txt -DexcludeTransitive=true
在命令行上生成输出。树的输出反映了pom文件中定义的排序,而build-classpath的输出则没有。
的输出build-classpath http://pastebin.com/k2SdrHP7
的输出非常感谢任何见解。
Maven config
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<id>generate-classpath-windows</id>
<phase>generate-resources</phase>
<goals>
<goal>build-classpath</goal>
</goals>
<configuration>
<pathSeparator>,</pathSeparator>
<prefix>..\jars</prefix>
<fileSeparator>\</fileSeparator>
<outputFile>${project.build.directory}/deployment/bin/classpath.windows</outputFile>
</configuration>
</execution>
<execution>
<id>generate-classpath-unix</id>
<phase>generate-sources</phase>
<goals>
<goal>build-classpath</goal>
</goals>
<configuration>
<pathSeparator>:</pathSeparator>
<prefix>../jars</prefix>
<fileSeparator>/</fileSeparator>
<outputFile>${project.build.directory}/deployment/bin/classpath.unix</outputFile>
</configuration>
</execution>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/deployment/jars</outputDirectory>
</configuration>
</execution>
</executions>
<configuration>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>true</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
<excludeTransitive>true</excludeTransitive>
<includeScope>runtime</includeScope>
<regenerateFile>true</regenerateFile>
</configuration>
</plugin>
信息
Apache Maven 3.0.4 (r1232337; 2012-01-17 08:44:56+0000)
Maven home: C:\apps\apache-maven-3.0.4
Java version: 1.6.0_37, vendor: Sun Microsystems Inc.
Java home: C:\Program Files\Java\jdk1.6.0_37\jre
Default locale: en_GB, platform encoding: Cp1252
OS name: "windows 7", version: "6.1", arch: "x86", family: "windows"
答案 0 :(得分:1)
类路径是线性表示,树是嵌套的。 Maven应该尝试在类路径中首先保持根级别依赖项,因为它们最接近,因此应首先解析。
从你的输出中看起来很奇怪,我没有看到我期望的正常逻辑重类路径构造。
此外,直到2.6版本的依赖插件,在Maven 3.x上dependency:tree
输出不正确。我想知道build-classpath
中是否存在来自同一根本原因的错误。我会把这个问题发送到users@maven.apache.org,看看是否有人(修复dependency:tree
的Hervé)知道答案......