Java 将一个普通jar简化为一个maven jar,其中包含Artifactory的内部pom.xml

Java 将一个普通jar简化为一个maven jar,其中包含Artifactory的内部pom.xml,java,maven-2,pom.xml,artifactory,Java,Maven 2,Pom.xml,Artifactory,我需要使用一个由ant生成的xyz.jar。因此,缺少可传递依赖项。因此,我有了一个想法,修改xyz.jar以添加内部META-INF/maven/groupId/artifactId/pom.xml和pom.properties文件 当我将它部署到Artifactory时,它忽略了它们,并生成了自己的pom.xml,没有依赖项 要做什么,Artifactory将pom.xml部署在与xyz.jar文件相同的文件夹中 在这个allready上浪费了太多时间…最好是将它的依赖项添加到pom中,而不

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

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

要做什么,Artifactory将pom.xml部署在与xyz.jar文件相同的文件夹中


在这个allready上浪费了太多时间…

最好是将它的依赖项添加到pom中,而不是通过第三方库来使用maven

也就是说,确保pom.xml是有效的xml(大多数现代IDE都可以为您验证xml),并确保属性文件包括版本、组id和工件id


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

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

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


如果您已经创建了定制的POM文件,那么您可以将其内容粘贴到工件部署器的POM内容编辑器中,或者单独部署它;尽管第一个选项将使您能够自动检测JAR文件的部署坐标。

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


祝你好运!

为什么不使用Ivy来处理依赖项,或者改用Maven。我的项目使用Maven,它需要使用ant创建的xyz.jar。我想告诉artifactory/Maven,哪些是xyz.jer需要的可传递依赖项,而不必将可传递依赖项添加到我的项目的pom.xml中。你必须使用为您的xyz.jar创建依赖项,否则它将不起作用。您可以手动创建此pom并添加到您的Ant项目中,在部署过程中您也可以添加pom。我已经查看了tomcat日志文件,但没有找到与您在此处提到的条目类似的条目。也许稍后我会尝试一下,但我很忙“项目阶段结束”,很高兴现在就运行它……这是一个内部库,所以还不算太坏。当有一天我不得不采用它时,也许我会将它迁移到maven设置中。。。