3

我需要使用 ant 生成的 xyz.jar。因此,缺少传递依赖。所以我有了想法,修改 xyz.jar 以添加内部 META-INF/maven/groupId/artifactId/pom.xml 和 pom.properties 文件。

当我将它部署到 Artifactory 时,它忽略了它们并生成了它自己的 pom.xml 没有依赖项。

有什么关系呢,Artifactory 将 pom.xml 部署在与 xyz.jar 文件相同的文件夹中?

在这一切上浪费了太多时间......

4

3 回答 3

2

Artifactory 可能会跳过内部 POM 的部署,因为它无法从存档中读取 POM 的物理大小(出于历史原因这样做);您可以通过查看日志中的警告消息来验证这一点:

“在 zip 中找到大小为 -1 的 pom.xml 文件。忽略”

如果您已经创建了定制的 POM 文件,您可以将其内容粘贴到工件部署器的 POM 内容编辑器中或单独部署它;虽然第一个选项将为您提供自动检测 JAR 文件的部署坐标的好处。

于 2011-04-12T15:11:33.757 回答
0

修改创建 xyz.jar 的 ant 以生成可运行的 jar - jar 应将其所有依赖项打包在里面。(在您的 xyz 项目中创建一个 lib 目录并将所有 xyz 依赖项放在此目录中,然后将您的项目导出到jar 与所有的库打包在里面)可以在这里找到如何创建 ant 脚本的良好分步示例。

祝你好运!

于 2011-04-13T04:25:58.197 回答
0

将它的依赖项添加到您的 pom 中而不是装配第三方库以使用 maven 可能是一个更好的主意。

话虽如此,请确保您的 pom.xml 是有效的 XML(大多数现代 IDE 可以为您验证 xml)并确保您的属性文件包含版本、组 ID 和工件 ID。

Artifactory 改变了它在不同版本中处理 POM 生成的方式,因此,根据您的版本,您可能有某种生成 pom 选项,您必须在部署时将其关闭。我认为他们在较新的版本中有一个部署时间 pom 编辑器或类似的东西。

于 2011-04-12T15:11:00.233 回答