Maven中的依赖关系jar文件列表
使用Maven 2,有没有一种方法可以列出的jar依赖只是文件名?
mvn dependency:build-classpath
可以列出jar文件,但是这将包括在我的本地存储库中的位置的完整path。 我所需要的基本上只是文件名的列表(或复制依赖关系目标复制的文件名)。
所以我需要的列表将是类似的
activation-1.1.jar,antlr-2.7.6.jar,aopalliance-1.0.jar etc...
理想的是作为一个maven属性,但我想,像build-classpath这样的文件可以生成。
我想要实现的是将一个Bundle-ClassPath
写入一个OSGi包的手动维护的MANIFEST.MF文件。 (你不需要明白这一点来回答这个问题。)
澄清:问题不在于如何将清单头文件写入MANIFEST.MF文件中的jar(这很容易googleble)。 我正在问如何获得我想写的数据,即上面显示的列表。
这个命令将会生成你的maven项目的依赖关系树:
$ mvn dependency:tree
我相信你会喜欢的结果:-)
尽我所知,你不能得到完全的输出,用逗号和空格。 无论是通过命令行还是通过pom.xml文件,如果您指定空格或'(空string)作为pathSeparator
或fileSeparator
的替代品,maven-dependency-plugin或CLI会fileSeparator
。 所以,你可能会被迫达成某种妥协。 您可以
mvn dependency:build-classpath -Dmdep.pathSeparator =“:”-Dmdep.prefix =''-Dmdep.fileSeparator =“:”-Dmdep.outputFile = classpath
然而,这应该让你一个完整的清单,由'::'
而不是','
分开,但它的作品。 如果你运行:
mvn依赖项: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
你看过Apache Felix项目吗? 它有一大堆的插件,包括一个应该做你想做的插件 。
另外,你是否用<manifestFile>
试过了<addClasspath>
标签? 这应该具有将类path合并到您的清单中的预期效果。
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> ... <configuration> <archive> <addClasspath>true</addClasspath> <manifestFile>src/main/resources/META-INF/MANIFEST.MF</manifestFile> </archive> </configuration> ... </plugin>
Maven可以自动在您的清单中构build类path: http : //maven.apache.org/guides/mini/guide-manifest.html
这是Maven档案插件的configuration。
我可能会在这里丢失一些东西,但是因为您已经使用了复制依赖关系,所以听起来像您真正所做的只是指定目录中的文件列表。
Ant可以为你做这个没有任何问题,就像一个shell脚本一样。
为了给现有的答案增加一个缺口,当前的maven-dependency-plugin允许使用outputProperty
参数将类path保存到一个属性中。
- 用cmake处理头文件的依赖关系
- npm通过package.json中的依赖来安装私人github存储库
- 将github库作为依赖添加到Android-Studio项目中
- 列表python包依赖没有加载它们?
- 尝试“System.Web.Mvc.PreApplicationStartCode.Start()”到关键方法“System.Web.WebPages.Razor.PreApplicationStartCode.Start()”失败
- 依赖地狱 – 如何将依赖关系传递给深度嵌套的对象?
- C和C ++标准之间的关系是什么?
- Android Studio – 导入外部库/ Jar
- 解决ghc-pkg检查logging的问题