Gradle 未将 SNAPSHOT 解析为时间戳
Gradle Not resolving SNAPSHOT as timestamp
我目前在将 Gradle 构建发布到快照 Artifactory 存储库时遇到问题,其中 'SNAPSHOT' 未解析为时间戳。这些罐子可以在 repo 上找到,但格式为“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 构建中使用的相同。
我根本看不出您在代码中实际设置 jar 名称的位置。 Maven 发布插件的 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 的默认值将用于命名由 group
和 version
项目的属性。例如,如果您在 IntelliJ 中从头开始 Gradle 项目,则默认版本值为 version '1.0-SNAPSHOT'
。
以下代码应该可以帮助您解决问题:
publishing {
publications {
mavenJava(MavenPublication) {
version 'your_time_stamp'
from components.java
}
}
}
我目前在将 Gradle 构建发布到快照 Artifactory 存储库时遇到问题,其中 'SNAPSHOT' 未解析为时间戳。这些罐子可以在 repo 上找到,但格式为“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 构建中使用的相同。
我根本看不出您在代码中实际设置 jar 名称的位置。 Maven 发布插件的 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 的默认值将用于命名由 group
和 version
项目的属性。例如,如果您在 IntelliJ 中从头开始 Gradle 项目,则默认版本值为 version '1.0-SNAPSHOT'
。
以下代码应该可以帮助您解决问题:
publishing {
publications {
mavenJava(MavenPublication) {
version 'your_time_stamp'
from components.java
}
}
}