分类器不适用于IVY的Maven Snapshot repo

时间:2010-08-17 08:06:10

标签: maven-2 ivy

所以我已经将我的Maven构建部署到我的快照仓库(Nexus)中,同时部署了Java5和Java6版本。我这样做是为了构建配置文件和分类器。在Maven方面,一切都很好。

但是,如果我尝试从基于IVY的项目解析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会破坏IVY构建的应用程序的构建。

2 个答案:

答案 0 :(得分:1)

解决方法是将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>

答案 1 :(得分:0)

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

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

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