2017-03-05 128 views
0

在我的build.gradle脚本中,发布在groupId未定义时工作。我想为“groupId”使用“org.company.foobar.common”。gradle artifactory插件无法使用groupID发布

当我取消注释以下build.gradle脚本中的groupId行时,我收到一个错误。该脚本下面是定义此groupId时的执行结果。

buildscript { 
    repositories { 
    maven { url "http://tribe.ust.doj.gov:8085/artifactory/jcenter/"} 
    maven { url "http://tribe.ust.doj.gov:8085/artifactory/MavenCentral/"} 
    maven { url "http://tribe.ust.doj.gov:8085/artifactory/gradlePlugins/"} 
    } 

dependencies { 
    classpath "org.jfrog.buildinfo:build-info-extractor-gradle:latest.release" 
    } 
} 

    repositories { 
    maven { url "http://tribe.ust.doj.gov:8085/artifactory/jcenter/"} 
    maven { url "http://tribe.ust.doj.gov:8085/artifactory/MavenCentral/"} 
    maven { url "http://tribe.ust.doj.gov:8085/artifactory/gradlePlugins/"} 
    } 

apply plugin: 'java' 
apply plugin: 'maven' 
apply plugin: 'maven-publish' 
apply plugin: "com.jfrog.artifactory" 

def getArtifactoryUrl() { 
    return "http://tribe.ust.doj.gov:8085/artifactory/" 
} 

allprojects { 
    repositories { 
     def artifactoryMcentralUrl = getArtifactoryUrl() + "MavenCentral/" 
     maven {url artifactoryMcentralUrl } 
    } 
} 

    dependencies { 

} 

sourceSets { 
    main { 
     java { 
      srcDir "/src" 
     } 
    } 
} 

//project.group = 'org.company.foobar.common' 

task printProps { 
    doLast { 
     println artifactory_user 
     println artifactory_contextUrl 
     //println project.group 
    } 
} 

publishing { 
    publications { 
     mavenJava(MavenPublication) { 
      //groupId project.group 
      artifactId project.getName() 
      version '1.0.0' 
      from components.java 
     } 
    } 
} 

artifactory { 
    def artifactoryUrl = getArtifactoryUrl() 
    contextUrl = artifactoryUrl 
    publish { 
     repository { 
      repoKey = 'libs-snapshot-local' 
      username = "${artifactory_user}" 
      password = "${artifactory_password}" 
     } 
     defaults { 
      publications('mavenJava') 
      publishArtifacts = true 
      publishPom = true 
     } 
    } 
} 

使用的groupId(取消注释)当从“gradle这个artifactoryPublish”输出是:

$ gradle artifactoryPublish 
:generatePomFileForMavenJavaPublication 
:compileJava UP-TO-DATE 
:processResources UP-TO-DATE 
:classes UP-TO-DATE 
:jar UP-TO-DATE 
:artifactoryPublish 
Deploying artifact: http://tribe.ust.doj.gov:8085/artifactory/libs-snapshot-local/org/company/foobar/common/kambucha/1.0.0/kambucha-1.0.0.jar 
:artifactoryPublish FAILED 

FAILURE: Build failed with an exception. 

* What went wrong: 
Execution failed for task ':artifactoryPublish'. 
> java.io.IOException: Failed to deploy file. Status code: 409 Response message: Artifactory returned the following errors: 
The repository 'libs-snapshot-local' rejected the resolution of an artifact 'libs-snapshot-local:org/company/foobar/common/kambucha/1.0.0/kambucha-1.0.0.jar' due to conflict in the snapshot release handling policy. Status code: 409 

* Try: 
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. 

BUILD FAILED 

Total time: 1.84 secs 

回答

3

,因为它似乎,你正试图到释放神器发布到快照库。在Artifactory中使用Maven仓库时,您需要确保您遵循Maven布局和发布/快照策略。 在这个特定的例子中,您的问题似乎如下: Artifactory遵循maven策略,正在识别以下路径: 'libs-snapshot-local:org/company/foobar/common/kambucha/1.0.0/kambucha -1.0.0.jar'作为发行版,而存储库被设置为仅处理快照。对于这种特定的工作路径,如果这实际上是快照工件,则需要将路径更改为: libs-snapshot-local:org/company/foobar/common/kambucha/1.0.0-SNAPSHOT/kambucha-1.0.0-SNAPSHOT.jar

如果这是一个版本,改为使用“库释放本地”仓库

你可以阅读更多的资源库配置here

+0

我你的部署路径添加了扩展名'-SNAPSHOT'。到版本和部署成功。到存储库配置的链接也很有价值。 –

相关问题