はじめに
人生初のGithub Packagesへのデプロイに挑戦していた。
とかを読みながら
apply plugin: 'maven-publish'
publishing {
repositories {
maven {
name = "GitHubPackages"
url = 'https://maven.pkg.github.com/yumetodo/LogisticsPipes'
credentials {
username = project.findProperty("gpr.user") ?: System.getenv("GITHUB_ACTOR")
password = project.findProperty("gpr.key") ?: System.getenv("GITHUB_TOKEN")
}
}
}
publications {
gpr(MavenPublication) {
artifactId = archivesBaseName
from(components.java)
}
}
}
を追記してgradlew publish
すると
> Task :publishGprPublicationToGitHubPackagesRepository FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':publishGprPublicationToGitHubPackagesRepository'.
> Failed to publish publication 'gpr' to repository 'GitHubPackages'
> Could not PUT 'https://maven.pkg.github.com/yumetodo/LogisticsPipes/rs485/logisticspipes/LogisticsPipes/0.9.4.local/LogisticsPipes-0.9.4.local.jar'. Received status code 422 from server: Unprocessable Entity
Received status code 422 from server: Unprocessable Entity
を喰らってしまった。どうすればいいのさ?
解決策を探す
artifacId should be lowercase to be able to push to github packages
artifacId
ってなんですか・・・?
第53章 Mavenプラグイン#53.6.4. MavenのPOM生成
archiveTask.baseNameをデフォルト以外の値に設定したときは、uploadTask.repositories.mavenDeployer.pom.artifactIdを同じ値に設定することを忘れないでください。 さもないと、近いうちに、同じビルド内の他プロジェクトで生成されたPOMから、プロジェクトが誤ったartifact IDで参照されてしまうかもしれません。
uploadTask
じゃないけど、そういえばarchivesBaseName
は変更している・・・
publishing {
publications {
maven(MavenPublication) {
groupId = 'org.gradle.sample'
artifactId = 'library'
version = '1.1'
from components.java
}
}
}
なるほど、そこにartifactId
できるのか
結論
apply plugin: 'maven-publish'
publishing {
repositories {
maven {
name = "GitHubPackages"
url = 'https://maven.pkg.github.com/yumetodo/LogisticsPipes'
credentials {
username = project.findProperty("gpr.user") ?: System.getenv("GITHUB_ACTOR")
password = project.findProperty("gpr.key") ?: System.getenv("GITHUB_TOKEN")
}
}
}
publications {
gpr(MavenPublication) {
+ artifactId = archivesBaseName
from(components.java)
}
}
}