当前位置: 首页 > 知识库问答 >
问题:

使用Maven元数据发布Ivy快照

高皓
2023-03-14

我有一个常春藤项目,将其工件发布到Nexus Maven存储库。然后,我需要其他 Maven 项目能够将这些 jar 用作依赖项。我已经能够让艾薇创建并上传pom.xml以及罐子,这工作正常。问题是,当我使用 Ivy 发布新的快照版本时 - 即使我这样做,也没有 Maven 项目会检索新的快照依赖项:

mvn clean install -U

我注意到Ivy没有向repos发布maven-metadata.xml文件——我想这就是问题所在吧?如果是这样,有什么方法让Ivy制作这个吗?

共有2个答案

叶明辉
2023-03-14

我有一个类似的问题,发现以下网站有助于解决它:http://ssinghvi.wordpress.com/2012/01/26/unable-to-retrieve-latest-artifact-from-sonatype-nexus-using-apache-ivy/

基本使用

姚臻
2023-03-14

Ivy可以配置为在解析依赖项时读取该文件(参见ibilio解析器的“m2compatible”属性),但是发布任务不会创建或更新该文件.....

看起来创建和更新“maven-metadata.xml”文件是客户端的工作....这是Maven资源库的一个未记录的特性。(如果有人能找到描述它的地方,也许一个常春藤错误就能被修复)。

标准解决方法是定期安排 Nexus 任务以重新生成元数据文件。看:

  • http://www.sonatype.com/people/2009/09/nexus-scheduled-tasks/

一个更极端的解决方案是使用Maven ANT任务执行发布步骤。。。。

最近,我得出的结论是,快照发布不值得付出努力。持续交付促进了这样一个概念,即每个构建都是潜在的可发布的,ivy有一个漂亮的构建编号任务,确保每个构建都是唯一的。我发现当只有一种构建时,我的构建过程更简单。

快照是只有在使用Maven与其他项目共享开发构建工件时才需要的特性。IMHO ivy的动态修订特性更加强大,因为它们在构建时解析“最新”的修订。在下面的示例中,可以看到deliver任务是如何与makepom任务相结合的:

  • 将常春藤.xml转换为pom.xml
  • 使用 ant 脚本为我的所有项目自动增加 ivy 修订
 类似资料:
  • 我的计划是建立一个设置,在这个设置中,我可以基于我正在运行的maven目标发布快照和版本。我当前的pom包含以下详细信息- 我的maven settings.xml包含服务器条目- 当我运行命令时 编辑1- 我运行了,部署插件的日志是-

  • 我无法发布我使用maven to Nexus构建的工件的快照版本。我的工件的版本状态为1.0.0-Snapshot。 我可以毫无问题地执行。但是,当我尝试使用进行部署时,会出现以下错误:

  • 问题内容: 对于Java库项目,要发布的工件非常简单,因为输出是单个jar文件。但是,我也有一个项目,其中包含以下内容: MyLib.jar armeabi / libStuff.so armeabi-v7a / libStuff.so mips / libStuff.so x86 / libStuff.so 我无法将所有这些.so文件设置为工件,因为它们都具有相同的名称。推荐的方法是什么?将所有

  • 我正在尝试使用Spring RestTemplate发布数据,如下所示: 你能提供我一个简单的例子来实现我想要的。

  • 我试图将构建Jenkins/Maven的结果发布到Nexus存储库。 我使用clean install maven目标进行构建。 我已经为jenkins安装并配置了Nexus Repository Manager Publisher插件,因此它可以在构建后的步骤中发布到我的Nexus Repo。 问题是: 我不明白,没有办法从jenkins builds用这个插件发布快照到nexus??

  • 问题内容: 我有一个Web脚本,该脚本接受JSON字符串作为通过HTTP POST请求的输入。我碰到了几个相同的AFNetworking 1.x示例,有人可以指点我还是举个AFNetworking 2.0示例向以JSON格式输入的Web脚本发出HTTP POST请求? 谢谢 问题答案: 搜索文档并尝试一些代码后,我以以下示例为例 同样不要忘记在服务器脚本中将响应头类型设置为Application