常春藤可以从Maven存储库安装和检索配置吗?

时间:2014-11-09 08:56:35

标签: maven repository ivy buildconfiguration

我有本地文件系统Ivy存储库,需要将所有工件安装(发布)到远程Maven存储库,如Nexus或Artifactory。我按照以下几行编写了ivy install task的蚂蚁脚本:

<ivy:install 
    organisation="apache" 
    module="commons-lang" 
    revision="2.0" 
    from="ivyfilesys" to="remotemaven"/>

现在,我的本地ivy存储库(testcompile)中有多个配置,这些配置在ivy.xml文件中声明。本地存储库包含每个工件,jar和ivys的两个文件夹。 Jars文件夹包含jar,ivys文件夹包含ivy.xml,其中包含声明的配置。还有SHA和MD5校验和文件,但没有别的。

我预计Ivy会告诉Maven存储库有关可用的配置,但似乎没有。在我切换到新创建的存储库以进行解析之后,Ivy无法找到它刚刚安装在那里的工件,声称缺少testcompile配置。

本地存储库配置为基于文件,并且可以从没有问题解决工件。远程存储库是ibiblio,m2兼容:

<ibiblio name="remotemaven" m2compatible="true"
      root="http://my.server:8081/"
      pattern="[organisation]/[module]/[revision]/[artifact]-[revision].[ext]"/>
/>

Root已配置到我们的服务器。当安装的工件出现在服务器上时,可能正确配置了根和身份验证。

是否可以让Ivy尊重自己的ivy.xml并使用配置安装到Nexus或Artifactory存储库中,以便以后解决它们?

  • 也许常春藤:安装任务需要更多选择吗?
  • 可能有些配置文件丢失或不完整?

1 个答案:

答案 0 :(得分:2)

  

可以从Maven存储库安装和检索配置吗?

简单的答案是否定的。

常春藤如何解释Maven回购

Maven不支持Ivy的配置概念。最接近的比较是Maven&#34;范围&#34;。这些是固定的,常春藤ibiblio resolver了解如何将这些映射到配置中。以下答案有更详细的说明:

常春藤如何将文件推送到Maven仓库

将artefact发布到Maven存储库时,还必须生成Maven元数据文件:pom.xml。 makepom task允许您指定应该为特定Maven范围使用哪些常春藤配置。以下答案可能有用:

常春藤并不局限于固定数量的范围。虽然常春藤配置更加灵活,但您不能假设每个配置都用于填充标准项目类路径....

批量加载Maven仓库

因此,总的来说,将本地常春藤仓库中的批量传输文件转移到Maven存储库并不是一项简单的工作,原因如下:

  1. 将常春藤文件翻译成Maven POM可能很难。 Ivy的配置与Maven范围的工作方式完全不同。
  2. 您的本地存储库可能包含Maven Central中已有的文件,因此不需要明确上传。
  3. 根据我的经验,最大的问题是大量的第三方罐子,没有记录他们来自哪里。为了帮助Maven化我的新项目,我开发了一个groovy脚本,它使用Nexus搜索API在Maven Central数据库中查找匹配的记录。一般而言,这种方法导致本地储存的罐子数量减少多达80%。

    希望这有帮助。