Gradle Не разрешает SNAPSHOT как метку времени - PullRequest
0 голосов
/ 25 апреля 2018

У меня в настоящее время проблема при публикации сборки Gradle в хранилище снимков Artifactory, где «SNAPSHOT» не разрешается в метку времени.Банки можно найти в репо, но в формате «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 голосов
/ 26 апреля 2018

Я вообще не вижу, где вы на самом деле устанавливаете свое имя банки в коде. Gradle doc для плагина Maven Publishing сообщает, как вы можете настроить идентификацию публикации вашего артефакта:

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
        }
    }
}

Если вы не переопределяете эти значения в закрытии публикации, как показано вышезначения по умолчанию проекта используются для именования артефакта, который определяется свойствами group и version вашего проекта.Значение версии по умолчанию - version '1.0-SNAPSHOT', если вы, например, запускаете проект Gradle с нуля в IntelliJ.

Следующий код должен помочь вам решить проблему:

publishing {
    publications {
        mavenJava(MavenPublication) {
            version 'your_time_stamp'

            from components.java
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...