我刚刚进入了一个使用Java 6的相当古老的长期项目,我正在尝试改进他们当前的构建过程 .

目前,他们使用旧版本的Jenkins和多作业项目,我想将其迁移到管道 .

我正在使用默认启用Java 8的从属服务器,然后启用Java 6 for Maven来运行构建 .

withEnv(["JAVA_HOME=${env.JAVA6_HOME}", 'MAVEN_OPTS="-XX:MaxPermSize=256m"']) {
    sh "${MAVEN_HOME}/bin/mvn clean install -f bla/pom.xml"
}

这导致需要将90个jar文件推送到repo .

因为我们需要使用Java 6,遵循这些说明[1]并使用Artifactory插件运行Maven构建将不起作用,因为它需要运行Java 7 .

要解决它,我正在使用这个[2]推动工件:

def pushToArtifactory(version, fileType, repo) {

    uploadSpec = """{
        "files": [
            {
                "pattern": "**/target/*-${version}.${fileType}",
                "target": "${repo}"
            }
        ]
}"""

    server = Artifactory.server 'artifactory'

    buildInfo = server.upload(uploadSpec)
    println(buildInfo)
    server.publishBuildInfo(buildInfo)
}

这种方法几乎没有用,因为它将预期的JAR推向了回购,但它并没有遵循任何结构 . 它们都在回购的根文件夹下 . 没有版本信息也没有POM,所以我猜测Artifactory不会自动读取带有JAR的POM .

我确信我必须遗漏一些非常明显的工件实际上已经发布为 group.id:artifact.id:version.number 并且还发布了他们的POM .

任何帮助将非常感激 .

谢谢!

[1] https://wiki.jenkins-ci.org/display/JENKINS/Artifactory+-+Working+With+the+Pipeline+Jenkins+Plugin#Artifactory-WorkingWiththePipelineJenkinsPlugin-MavenBuildswithArtifactory

[2] https://wiki.jenkins-ci.org/display/JENKINS/Artifactory+-+Working+With+the+Pipeline+Jenkins+Plugin#Artifactory-WorkingWiththePipelineJenkinsPlugin-UploadingandDownloadingFiles