使用 Maven 2,有没有办法可以仅列出文件名形式的 jar 依赖项?mvn dependency:build-classpath 可以列出 jar 文件,但是这将包括它们所在位置的完整路径...
使用 Maven 2,有没有办法可以仅列出 jar 依赖项作为文件名?
mvn dependency:build-classpath
可以列出 jar 文件,但这将包括它们在我的本地存储库中的完整路径。我所需要的本质上只是一个文件名列表(或 copy-dependencies 目标复制的文件名)。
所以我需要的列表应该是这样的
activation-1.1.jar,antlr-2.7.6.jar,aopalliance-1.0.jar etc...
理想情况下作为 maven 属性,但我猜想,诸如 build-classpath 之类的文件可以生成就可以了。
我想要实现的是将 Bundle-ClassPath
一个 OSGi 包写入一个手动维护的 MANIFEST.MF 文件。 (您不需要理解这一点就可以回答这个问题。)
澄清一下:问题 不 在于如何将清单标头写入 jar 中的 MANIFEST.MF 文件(这很容易在 Google 上找到)。我问的是如何获取我想要写入的数据,即上面显示的列表。
据我所知,您无法获得完全相同的输出,即带有逗号而没有空格。无论是通过命令行还是通过 pom.xml 文件,如果您用 或 指定空格或 ''(空字符串)作为替代,maven-dependency-plugin 或 CLI 都会出错 pathSeparat。
or fileSeparator
因此,您可能被迫达成某种妥协。您可以
mvn dependency:build-classpath -Dmdep.pathSeparator=":" -Dmdep.prefix='' -Dmdep.fileSeparator=":" -Dmdep.outputFile=classpath
但是,这样会得到一个完整的列表,以 分隔, '::'
而不是仅仅以 分隔 ','
,但这样是可行的。如果您运行:
mvn dependency:build-classpath -Dmdep.pathSeparator="@REPLACEWITHCOMMA" -Dmdep.prefix='' -Dmdep.fileSeparator="@" -Dmdep.outputFile=classpath
并将 其附加到 generate-resources
阶段 , 生命周期的阶段 process-resources
设置正确的属性来过滤该资源 应该 能够只得到逗号。
您可以在以下位置查看完整的选项列表: http://maven.apache.org/plugins/maven-dependency-plugin/build-classpath-mojo.html