为什么每次执行uploadArchives时都会生成许多pom文件?

时间:2016-10-27 14:55:37

标签: java android maven gradle

我编写了gradle脚本,用于将模块发布为工件。我正在使用我们公司的内部maven存储库。我执行

  

gradle uploadArchives

这是成功的。然后我浏览了发布网址的网页,pom.xml就在那里。

  

lib.core.imageprocessor-1.0.0.develop-20161025.140959-1.pom

一切都很好。但是当我第二次执行此任务时,我发现它生成了另一个pom文件。看:

  

lib.core.imageprocessor-1.0.0.develop-20161026.051357-2.pom

每次执行上传任务时,它会生成x.pom(x按数字增加)的新pom文件。因此存储库中会有很多pom.xml文件。

为什么它会生成一个不同的名称pom文件?我做错了吗?

以下是代码:

 uploadArchives {
    repositories {
        mavenDeployer {
            configurePOM(pom)
            repository(url: "http://10.10.106.128:8081/nexus/content/repositories/releases/") {
                authentication(userName: 'xxx', password: 'xxx')
            }
            snapshotRepository(url: "http://10.10.106.128:8081/nexus/content/repositories/snapshots") {
                authentication(userName: 'xxx', password: 'xxx')
            }
        }
    }
}

private configurePOM(def pom) {
    pom.project {
        groupId 'com.gaogao.android'
        artifactId imageprocessor
        String ver = "1.0.0." + “develop” + "-SNAPSHOT"
        version ver
        name 'com.gaogao.android'
        packaging 'aar'
        description "Lib For Android"
        url "http://10.10.106.128:8081/nexus/content/groups/public/"
        inceptionYear "2016"
        developers {
            developer {
                id "android_team"
                name "android_team"
                email "android_team@xxx.com"
                url "http://www.gaogao.com"
            }
        }

    }
}

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

SNAPSHOTs是中间版本,直到您释放其中一个版本。 1.0.0-SNAPSHOT将生成1.0.0版本。因为您可以多次尝试让SNAPSHOT准备好发布。只有1.0.0-SNAPSHOT不足以识别工件,因此它会被后缀化。

对于Maven(也许是gradle,不确定),可以选择"始终更新SNAPSHOT依赖关系",选择由后缀确定的最新(或最大)1.0.0-SNAPSHOT是什么。

如果您使用的是Sonatype Nexus或类似的工具,那么这就是负责后缀的工具,并且可能有一些针对其snapshot-repo的策略,可以对其进行修改。您可以(也应该)在此处调整未使用的SNPASHOT工件的删除(基于时间或其他方式)。

在发布 - 回购中,后缀是被禁止的,或者至少不是一个好主意,因为这里的版本是唯一的。