使用 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 上找到)。我问的是如何获取我想要写入的数据,即上面显示的列表。
以下是用于管道的 awk 脚本 mvn dependency:list
:
mvn dependency:list | awk -f mvnfmt.awk
您可以 | sort
按名称排序,或者 | tr '\n' ':'
将其格式化为类路径。
mvnfmt.awk
是:
BEGIN {
found = 0
}
/The following files have been resolved/ {
found = 1
next
}
/^\[INFO\] \$/ {
print "Empty " found
if (found != 0) found = 0
}
{
if (!found) next
n = split($0, a, " ")
if (n != 2) {
found = 0
next
}
split(a[2], a, ":")
print a[2] "-" a[4] "." a[3]
}