I have an Ivy project that publishes its artifacts to a Nexus Maven repository. I then need other Maven projects to be able to use those jars as dependencies. I have been able to get Ivy to create and upload the pom.xml along with the jars, which is working fine. The problem is, when I use Ivy to publish a new SNAPSHOT version - none of the Maven projects will retrieve the new snapshot dependency, even if I do:
mvn clean install -U
I have noticed that Ivy does not publish a maven-metadata.xml file to the repos -- I assume that is the problem? If so, are there any ways to get Ivy to produce this?
常春藤可以配置解析相关性(见的“m2compatible”属性时,读取该文件ibilio解析器),但发布任务不会创建或更新该文件.....
表面上看,这是客户的工作,以创建和更新“的maven-metadata.xml中”文件....这是Maven仓库的无证功能。 (如果在那里的描述有人能找到,也许是一个错误常春藤可以固定)。
标准的解决办法是定期安排的Nexus任务来重新生成元数据文件。 看到:
- http://www.sonatype.com/people/2009/09/nexus-scheduled-tasks/
一个更极端的解决办法是使用Maven的ANT任务来执行发布一步....
评上的快照修订
最近一个时期,我来到该快照版本是不值得的结论。 连续交付促进了每个版本是潜在的释放和常春藤有一个漂亮的概念buildnumber确保每个版本是唯一的任务。 我发现我的构建过程比较简单,当只有一种身材。
快照是使用Maven等项目共享发展构建工件时,只需要一个特征。 恕我直言,常春藤的动态修正功能更强大,因为他们解决在构建时“最新”版本。 请参阅如何交付任务与联合makepom在下面的示例任务:
- 转换的ivy.xml到的pom.xml
- 使用ant脚本自动为我所有的项目常春藤修订增加
我有一个类似的问题,发现下面的网站有帮助的解决它: http://ssinghvi.wordpress.com/2012/01/26/unable-to-retrieve-latest-artifact-from-sonatype-nexus-using-apache -常春藤/
基本上用<ibiblio name="Maven Central" m2compatible="true" useMavenMetadata="false" root="http://…" />