首页 文章

Gradle未将SNAPSHOT解析为时间戳

提问于
浏览
0

我将Gradle构建发布到快照Artifactory存储库时遇到问题,其中“SNAPSHOT”未解析为时间戳 . jar 可以在仓库中找到,但格式为'1.0.1-SNAPSHOT.jar'而不是例如'1.0.1-20180420.112216-1.jar' . 当其他构建依赖于相关项目时,这会导致问题 . 我们目前有Maven构建,它们正在推动同一个回购,没有任何问题 .

我正在使用maven-publish和com.jfrog.artifactory插件 . 值得一提的是,我没有很多Gradle经验 .

build.gradle中的相关部分:

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

artifactory {

  contextUrl = ${rep.url}
  publish {
      ext.systemProperties = System.getenv()
      println "Publishing using this user: ${systemProperties.artifactory_user}"
      println "Publishing to this repo: ${systemProperties.artifactory_repo}"
      repository {
         repoKey = "${systemProperties.artifactory_repo}"
         username = "${systemProperties.artifactory_user}"
         password = "${systemProperties.artifactory_password}"
         maven = true
      }
      defaults {
        publications('mavenJava')
      }
  }
}

publishing {
   publications {
      mavenJava(MavenPublication) {
        from components.java
      }
   }
}

与gradle-wrapper.properties相关:

distributionUrl=https\://services.gradle.org/distributions/gradle-4.0.2-bin.zip

环境变量来自Jenkins,与我们的maven构建中使用的相同 .

1 回答

  • 0

    我根本没有看到你在代码中设置jar名称的位置 . Maven Publishing插件的Gradle doc告诉您如何自定义工件的发布标识:

    publishing {
        publications {
            mavenJava(MavenPublication) {
                groupId 'org.gradle.sample' // Modify the artifact group
                artifactId 'project1-sample'// Modify the artifact name
                version '1.1'   // Modify the artifact version
    
                from components.java
            }
        }
    }
    

    如果您没有覆盖发布闭包中的这些值,如上所示,project的默认值将用于命名由项目的 groupversion 属性定义的工件 . 如果您在IntelliJ中从头开始Gradle项目,则默认版本值为 version '1.0-SNAPSHOT' .

    以下代码可以帮助您解决问题:

    publishing {
        publications {
            mavenJava(MavenPublication) {
                version 'your_time_stamp'
    
                from components.java
            }
        }
    }
    

相关问题