只发布 JAR 到 Maven 仓库
Publish only JAR to maven repo
我想将生成的 jar 文件上传到 packagecloud.io。
我的缩短 build.gradle
:
jar {
archiveName "$project.name-$project.version-SNAPSHOT.jar"
}
distTar {
archiveName 'dist.tar'
}
//project.configurations.archives.artifacts.clear()
artifacts {
archives( file( "$buildDir/libs/$project.name-$project.version-SNAPSHOT.jar" ) )
}
uploadArchives {
repositories.mavenDeployer {
pom.version = project.version + '-SNAPSHOT'
configuration = configurations.deployerJars
repository( url:'packagecloud+https://packagecloud.io/mycompany/central' ){
authentication password:pw
}
}
}
jar.finalizedBy uploadArchives
当我 运行 gradlew distTar
时,jar 文件与 tar 一起生成,并上传到 repo,但构建失败并出现异常:
> Task :compileJava NO-SOURCE
> Task :compileGroovy UP-TO-DATE
> Task :processResources UP-TO-DATE
> Task :classes UP-TO-DATE
> Task :jar
> Task :startScripts
> Task :distTar
> Task :uploadArchives
Could not transfer artifact io.mozaiq:feature-state-verticle:pom:0.1-20190509.110559-1 from/to remote (packagecloud+https://packagecloud.io/mozaiq/central): Upload failed: {"error":"Validation failed: Unknown Java::Version::UnsupportedPackaging"}
Could not transfer artifact io.mozaiq:feature-state-verticle:tar:0.1-20190509.110559-1 from/to remote (packagecloud+https://packagecloud.io/mozaiq/central): Upload failed: {"error":"Could not understand this request, please contact support@packagecloud.io"}
> Task :uploadArchives FAILED
因此,出于某种原因,它不仅尝试上传 jar 文件,还尝试上传所有生成的工件。
如何限制发布到 jar 文件?
根据来自 Gradle 论坛的 and this post 的回答:一个解决方案是从 archives
配置中排除所有不是 'jar' 的工件。这样,uploadArchives
将只上传 Jar 工件,跳过所有其他生成的工件/
configurations.archives.artifacts.removeAll{
it.extension != 'jar'
}
这类似于您自己的基于工件 'type' 的解决方案。
我想将生成的 jar 文件上传到 packagecloud.io。
我的缩短 build.gradle
:
jar {
archiveName "$project.name-$project.version-SNAPSHOT.jar"
}
distTar {
archiveName 'dist.tar'
}
//project.configurations.archives.artifacts.clear()
artifacts {
archives( file( "$buildDir/libs/$project.name-$project.version-SNAPSHOT.jar" ) )
}
uploadArchives {
repositories.mavenDeployer {
pom.version = project.version + '-SNAPSHOT'
configuration = configurations.deployerJars
repository( url:'packagecloud+https://packagecloud.io/mycompany/central' ){
authentication password:pw
}
}
}
jar.finalizedBy uploadArchives
当我 运行 gradlew distTar
时,jar 文件与 tar 一起生成,并上传到 repo,但构建失败并出现异常:
> Task :compileJava NO-SOURCE
> Task :compileGroovy UP-TO-DATE
> Task :processResources UP-TO-DATE
> Task :classes UP-TO-DATE
> Task :jar
> Task :startScripts
> Task :distTar
> Task :uploadArchives
Could not transfer artifact io.mozaiq:feature-state-verticle:pom:0.1-20190509.110559-1 from/to remote (packagecloud+https://packagecloud.io/mozaiq/central): Upload failed: {"error":"Validation failed: Unknown Java::Version::UnsupportedPackaging"}
Could not transfer artifact io.mozaiq:feature-state-verticle:tar:0.1-20190509.110559-1 from/to remote (packagecloud+https://packagecloud.io/mozaiq/central): Upload failed: {"error":"Could not understand this request, please contact support@packagecloud.io"}
> Task :uploadArchives FAILED
因此,出于某种原因,它不仅尝试上传 jar 文件,还尝试上传所有生成的工件。
如何限制发布到 jar 文件?
根据来自 Gradle 论坛的 archives
配置中排除所有不是 'jar' 的工件。这样,uploadArchives
将只上传 Jar 工件,跳过所有其他生成的工件/
configurations.archives.artifacts.removeAll{
it.extension != 'jar'
}
这类似于您自己的基于工件 'type' 的解决方案。