Maven CentralにGradleでリリースしてみた
と言ってもやったことは、基本参考ページを見ながら順番に進めていっただけ。意外と公式ドキュメントに情報が揃っていることが分かったが、そもそもそこにたどり着くために参考ページが役に立った。
リリースした雑ライブラリは以下。
最終的な build.gradleは以下。
https://github.com/eiryu/templa/blob/8ce567bb422df0f3ed0d4c6dadaf8fc4c4169c2d/build.gradle
apply plugin: 'groovy' apply plugin: 'idea' apply plugin: 'maven' apply plugin: 'signing' description = 'A New HTML Template Engine' group = 'com.eiryu' version = '0.1.0' archivesBaseName = 'templa' sourceCompatibility = '1.8' targetCompatibility = '1.8' [compileJava, compileTestJava, compileGroovy, compileTestGroovy].each { it.options.encoding = 'UTF-8' } repositories { mavenLocal() jcenter() mavenCentral() } dependencies { compile 'org.codehaus.groovy:groovy-all:2.4.3' testCompile 'org.spockframework:spock-core:0.7-groovy-2.0' testCompile 'junit:junit:4.12' } task wrapper(type: Wrapper) { gradleVersion = '2.5' } task javadocJar(type: Jar, dependsOn: groovydoc) { classifier = 'javadoc' from "${buildDir}/javadoc" } task sourcesJar(type: Jar) { from sourceSets.main.allSource classifier = 'sources' } artifacts { archives jar archives javadocJar archives sourcesJar } signing { sign configurations.archives } uploadArchives { repositories { mavenDeployer { beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) } repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") { authentication(userName: ossrhUsername, password: ossrhPassword) } snapshotRepository(url: "https://oss.sonatype.org/content/repositories/snapshots/") { authentication(userName: ossrhUsername, password: ossrhPassword) } pom.project { name 'Templa' packaging 'jar' description project.description url 'https://github.com/eiryu/templa' scm { connection 'scm:git:https://github.com/eiryu/templa.git' developerConnection 'scm:git:https://github.com/eiryu/templa.git' url 'https://github.com/eiryu/templa.git' } licenses { license { name 'The MIT License (MIT)' url 'http://opensource.org/licenses/MIT' } } developers { developer { id 'eiryu' name 'Hidetaka Koda' email 'eiryu.co@gmail.com' } } } } } }
つまずいた・気になったところ
- sonatypeにuploadする際に、
Could not find metadata
と出たが問題なく上がっていた
$ ./gradlew --daemon uploadArchives :compileJava UP-TO-DATE :compileGroovy UP-TO-DATE :processResources UP-TO-DATE :classes UP-TO-DATE :jar UP-TO-DATE :groovydoc UP-TO-DATE :javadocJar UP-TO-DATE :sourcesJar UP-TO-DATE :signArchives UP-TO-DATE :uploadArchives Could not find metadata com.eiryu:templa:0.1.0-SNAPSHOT/maven-metadata.xml in remote (https://oss.sonatype.org/content/repositories/snapshots/) Could not find metadata com.eiryu:templa/maven-metadata.xml in remote (https://oss.sonatype.org/content/repositories/snapshots/) BUILD SUCCESSFUL Total time: 25.408 secs
リリースがちょっと分かりにくかったが、ちゃんと英語を読めば手順が書いてあった。Staging RepositoryをClose、Releaseの順番で操作してリリースする
最初GPG鍵を作ってはいたが公開鍵サーバーに送っていなかったせいで、Staging RepositoryのClose処理で鍵のVerifyエラーが発生してしまった
参考
- http://blog.eiel.info/blog/2013/07/31/gpg/
- http://int128.hatenablog.com/entry/20130409/1365434513
- http://tagomoris.hatenablog.com/entry/20141028/1414485679
- http://blog.64p.org/entry/2015/04/19/085909
- http://central.sonatype.org/pages/apache-maven.html#performing-a-release-deployment
- http://central.sonatype.org/pages/gradle.html
- http://central.sonatype.org/pages/releasing-the-deployment.html