我们正从常春藤搬到maven。我们在使用常春藤发布的工件中有很多工件,因此工件文件夹/路径结构类似于
artifactory/libs-release/[organization]/[module]/[revision]/[type]s/[module](-[classifier]).[ext]
artifactory/libs-release/[organization]/[module]/[revision]/[type]s/ivy.xml
但是,当我们在maven pom.xml中添加依赖项时,依赖项名称将类似于com.abc.xyz
。但是maven试图查看路径com/abc/xyz/
文件夹,而我们在com.abc.xyz/my-artifact/1.0.0/jars/my-artifact.jar
如何告诉maven(pom.xml)阅读并理解神器中的路径。
我尝试使用ivy-maven-plugin但是它为一些groovy类提供了classNotFound错误,即使我在我的本地m2存储库文件夹中需要groovy jar。
*回答 好的,这就是我们做的。我们手动创建了文件夹,然后我们现在使用makepom插件将ivy.xml转换为maven pom.xml 感谢您的所有建议,欢迎更多。
答案 0 :(得分:3)
你为什么要尝试将Maven融入常春藤。 Ivy在那里利用并模仿当时Maven已经拥有的东西。
由于Ivy可以读取Maven存储库但不是相反,我建议您使用Nexus或Artifactory设置自己的本地网络(或公司)Maven存储库。然后,您可以逐个上传工件,并将那些Ivy构建标准化为指向新的Maven存储库。 这在开始时需要额外的努力,但我相信它会在以后付出代价。
还有另一个选项,配置Maven读取非标准存储库布局,但为什么要进入该路由?一旦你选择了这条道路,一切都会变得更加困难。
答案 1 :(得分:1)
看一下我的Ivy integration package。 jar.macro
特别方便,因为它会在您构建jar时自动构建pom.xml
。该宏与jar
任务非常相似。
我所做的是用我的每个jar构建pom.xml,然后使用mvn deploy:deploy-file
将我的jar部署到Maven存储库。
mvn deploy:deploy-file -Dfile=$jar_file
-D pomFile=pom.xml
-D repositoryId=$repo_id
-D url=$repo_url