可以发布到 mavenLocal 但不能发布到远程仓库?
Can publish to mavenLocal but not remote repo?
$ ./gradlew -version
------------------------------------------------------------
Gradle 6.5
------------------------------------------------------------
Build time: 2020-06-02 20:46:21 UTC
Revision: a27f41e4ae5e8a41ab9b19f8dd6d86d7b384dad4
Kotlin: 1.3.72
Groovy: 2.5.11
Ant: Apache Ant(TM) version 1.10.7 compiled on September 1 2019
JVM: 1.8.0_181 (Oracle Corporation 25.181-b13)
OS: Mac OS X 10.15.7 x86_64
我有一个包含以下 build.gradle
文件的子项目
plugins {
id 'java'
id 'maven-publish'
}
dependencies {
compileOnly group: 'org.projectlombok', name: 'lombok', version: '1.18.10'
annotationProcessor group: 'org.projectlombok', name: 'lombok', version: '1.18.10'
compile group: 'javax.validation', name: 'validation-api', version: '2.0.1.Final'
}
task sourcesJar(type: Jar, dependsOn: classes){
from sourceSets.main.allSource
}
artifacts{
archives sourcesJar
}
publishing {
repositories{
maven {
url 's3://' + s3_bucket
authentication {
awsIm(AwsImAuthentication)
}
}
}
publications {
integrationsCommon(MavenPublication){
artifactId artifactId
from components.java
artifact sourcesJar{
classifier "sources"
}
}
}
}
我可以运行
$ ./gradlew clean build pTML -p my-sub-project
...并查看在我的 ~/.m2
本地存储库中发布的工件。
但是当我 运行 publish
任务
时出现以下错误
$ ./gradlew clean build publish -p my-sub-project
* What went wrong:
Execution failed for task ':my-sub-project:publishIntegrationsCommonPublicationToMaven2Repository'.
> Failed to publish publication 'integrationsCommon' to repository 'maven2'
> java.lang.NullPointerException (no error message)
这是为什么?我的印象是,如果可以发布到 Maven 本地,我可以在任何地方发布! (上帝,我想念 Maven!)。
AWS documentation 建议定义 credentials
.
这只是指 CodeArtifact 而不是 S3,它似乎是常见的后端。如果您想改用 S3...将 --stacktrace
添加到命令中,以确定 NullPointerException
可能是由什么引起的;配置可能缺少必要的东西。
这将是 S3 的 Gradle 文档:AWS S3 存储库配置
.
$ ./gradlew -version
------------------------------------------------------------
Gradle 6.5
------------------------------------------------------------
Build time: 2020-06-02 20:46:21 UTC
Revision: a27f41e4ae5e8a41ab9b19f8dd6d86d7b384dad4
Kotlin: 1.3.72
Groovy: 2.5.11
Ant: Apache Ant(TM) version 1.10.7 compiled on September 1 2019
JVM: 1.8.0_181 (Oracle Corporation 25.181-b13)
OS: Mac OS X 10.15.7 x86_64
我有一个包含以下 build.gradle
文件的子项目
plugins {
id 'java'
id 'maven-publish'
}
dependencies {
compileOnly group: 'org.projectlombok', name: 'lombok', version: '1.18.10'
annotationProcessor group: 'org.projectlombok', name: 'lombok', version: '1.18.10'
compile group: 'javax.validation', name: 'validation-api', version: '2.0.1.Final'
}
task sourcesJar(type: Jar, dependsOn: classes){
from sourceSets.main.allSource
}
artifacts{
archives sourcesJar
}
publishing {
repositories{
maven {
url 's3://' + s3_bucket
authentication {
awsIm(AwsImAuthentication)
}
}
}
publications {
integrationsCommon(MavenPublication){
artifactId artifactId
from components.java
artifact sourcesJar{
classifier "sources"
}
}
}
}
我可以运行
$ ./gradlew clean build pTML -p my-sub-project
...并查看在我的 ~/.m2
本地存储库中发布的工件。
但是当我 运行 publish
任务
$ ./gradlew clean build publish -p my-sub-project
* What went wrong:
Execution failed for task ':my-sub-project:publishIntegrationsCommonPublicationToMaven2Repository'.
> Failed to publish publication 'integrationsCommon' to repository 'maven2'
> java.lang.NullPointerException (no error message)
这是为什么?我的印象是,如果可以发布到 Maven 本地,我可以在任何地方发布! (上帝,我想念 Maven!)。
AWS documentation 建议定义 credentials
.
这只是指 CodeArtifact 而不是 S3,它似乎是常见的后端。如果您想改用 S3...将 --stacktrace
添加到命令中,以确定 NullPointerException
可能是由什么引起的;配置可能缺少必要的东西。
这将是 S3 的 Gradle 文档:AWS S3 存储库配置 .