代码之家  ›  专栏  ›  技术社区  ›  Paul McKenzie

分类器不在常春藤的Maven快照报告中工作

  •  0
  • Paul McKenzie  · 技术社区  · 14 年前

    所以我得到了我的maven构建,将java5和java6版本部署到我的快照repo(nexus)中。我使用构建配置文件和分类器来完成这项工作。一切都是好的。

    但是,如果我尝试从我基于常春藤的项目中解决Java5依赖性,那么如果最近的Maven部署是针对Java6概要文件/分类器的,那么它将不起作用。我想这是因为时间戳 maven-metadata.xml 挑选出Java6版本。如果最近的部署是针对Java5的,那么它确实可以工作。

    这是分解器:

    <ibiblio name="snapshot-repo-name"
                     m2compatible="true"
                     root="snapshot-repo-root"
                     pattern="[organisation]/[module]/[revision]/[artifact]-[revision](-[classifier]).[ext]"
                     usepoms="true"
                     checkmodified="true"
                     changingPattern=".*SNAPSHOT"/>
    

    因此,部署依赖项的Java6会破坏常春藤构建的应用程序的构建。

    2 回复  |  直到 14 年前
        1
  •  1
  •   Paul McKenzie    14 年前

    解决方法是将maven快照标记为 <distributionManagement/> 元素。也就是说,Maven快照存储库中不再有时间戳版本。

    <distributionManagement>
        <repository>
            <id>PROJECT-RELEASE</id>
            <name>PROJECT-RELEASE</name>
            <url>http://foo.bar:8081/nexus/content/repositories/PROJECT-RELEASE</url>
        </repository>
        <snapshotRepository>
            <id>PROJECT-SNAPSHOT</id>
            <name>PROJECT-SNAPSHOT</name>
            <uniqueVersion>false</uniqueVersion>
            <url>http://foo.bar:8081/nexus/content/repositories/PROJECT-SNAPSHOT</url>
        </snapshotRepository>
    </distributionManagement>
    
        2
  •  0
  •   Mark O'Connor    14 年前

    是失败的解决方案还是检索?(检索执行隐式解析)。

    我的构建曾经失败过,因为以下模式不唯一(需要名称模式中的分类器来满足源代码和javadoc工件的需要):

    <ivy:retrieve pattern="lib/[artifact].[ext]"/>