我们的webapp项目已经存在了一段时间(或者实际上我应该说启动该项目的程序员太忙而无法查看更新的东西)而且我们在构建时非常依赖ant。虽然Ant很酷,但Maven更酷。所以我们想开始使用它。
webapp已存在一段时间,至少有70-80个罐子。映射每个罐子的maven坐标是痛苦的。有没有办法通过将工具指向当前的类路径文件来自动生成maven pom(只是依赖部分)?有没有这样的工具
答案 0 :(得分:2)
您的项目越旧,识别旧版本的开源模块就越困难。
我所做的是使用jar文件的校验和作为公共Nexus存储库的搜索键。例如,尝试以下REST URL:
http://oss.sonatype.org/service/local/data_index?sha1=7999a63bfccbc7c247a9aea10d83d4272bd492c6
返回以下响应片段,标识log4j模块的版本1.2.16:
<search-results>
<artifact>
..
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.16</version>
..
</artifact>
</search-results>
当然,这种方法可以识别Maven中心的那些罐子,但它可以节省大量时间。
希望这有帮助,祝你好运!
答案 1 :(得分:1)
Maven支持传递依赖。如果你将所有传递依赖作为直接依赖添加,你就没有充分利用maven,未来的维护者也不会感谢你,因为升级依赖将像在ant中一样困难,即传递依赖的版本必须是手动更新。
另外,请注意,70个罐子可能只意味着十几个依赖,所以找到合适的神器坐标并不是什么大问题。 (可以搜索maven存储库,你知道......)