共有ライブラリを管理するために Sonatype の Nexus Repository Manager OSS を使用する ( その15 )( pom ファイルに name, description を追加する )
概要
- 今回の手順で確認できるのは以下の内容です。
- Apache Maven Project - POM Reference ( https://maven.apache.org/pom.html ) の
<!-- More Project Information -->
に記載されている name, description を追加する。
- Apache Maven Project - POM Reference ( https://maven.apache.org/pom.html ) の
参照したサイト・書籍
Apache Maven Project - POM Reference
https://maven.apache.org/pom.htmlMavenPom
https://docs.gradle.org/current/dsl/org.gradle.api.publish.maven.MavenPom.html
目次
- http://maven.apache.org/xsd/maven-4.0.0.xsd で name, description の出力フォーマットを確認する
- build.gradle を変更して pom ファイルに name, description が出力されるようにする
- Nexus にアップロードする
- 次回は。。。
手順
http://maven.apache.org/xsd/maven-4.0.0.xsd で name, description の出力フォーマットを確認する
Apache Maven Project - POM Reference ( https://maven.apache.org/pom.html ) では name や description という項目が出力可能なことは分かるのですが、具体的にどのようなフォーマットで出力するのかは分からないんですよね。
Nexus に登録されている ksbysample-library-depend-nospring-1.1-RELEASE.pom
を見ると一番上に <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
と書かれていましたので、http://maven.apache.org/xsd/maven-4.0.0.xsd で出力フォーマットを確認します。
name も description も type="xs:string"
ですので単に文字列を設定すればよいようです。
build.gradle を変更して pom ファイルに name, description が出力されるようにする
ksbysample-library-depend-nospring プロジェクトを開きます。
build.gradle を リンク先の内容 に変更します。
Gradle projects View の左上にある「Refresh all Gradle projects」ボタンをクリックして build.gradle を反映します。
Nexus にアップロードする
uploadArchives タスクを実行して Nexus に登録します。
Nexus の画面を見ると ksbysample-library-depend-nospring の 1.2-RELEASE が登録されていることが確認できます。
1.2-RELEASE をクリックして pom ファイルを表示すると name, description が追加されていることが確認できます。
次回は。。。
- Nexus へのアップロードを admin 権限で実行していますが、アップロード用の User を作成して実行する方法を確認します。
- Spring Framework に依存するライブラリを作成してみます。こちらは Nexus はあまり関係なく(おそらく)、Spring に依存するライブラリを作成した時のテストの書き方をまとめるのが目的です。
ソースコード
build.gradle
group 'ksbysample.library' version '1.2-RELEASE' apply plugin: 'java' apply plugin: 'groovy' apply plugin: 'maven' sourceCompatibility = 1.8 targetCompatibility = 1.8 compileJava.options.compilerArgs = ['-Xlint:all'] compileTestGroovy.options.compilerArgs = ['-Xlint:all'] compileTestJava.options.compilerArgs = ['-Xlint:all'] repositories { jcenter() } dependencies { compile("org.apache.commons:commons-lang3:3.4") testCompile("org.spockframework:spock-core:1.0-groovy-2.4") } javadoc { options.charSet = 'UTF-8' options.encoding = 'UTF-8' } task sourcesJar(type: Jar, dependsOn: classes) { classifier = 'sources' from sourceSets.main.allSource } task javadocJar(type: Jar, dependsOn: javadoc) { classifier = 'javadoc' from javadoc.destinationDir } artifacts { archives sourcesJar archives javadocJar } uploadArchives { def nexusUrl = "http://localhost:8081" def nexusUsername = "admin" def nexusPassword = "admin123" repositories { mavenDeployer { repository(url: "${nexusUrl}/repository/maven-releases") { authentication(userName: nexusUsername, password: nexusPassword) } snapshotRepository(url: "${nexusUrl}/repository/maven-snapshots") { authentication(userName: nexusUsername, password: nexusPassword) } pom.withXml { asNode().appendNode('name', 'Spring非依存のテストライブラリ ksbysample-library-depend-nospring') asNode().appendNode('description', 'Spring には依存しないが他のライブラリに依存する共有ライブラリである') } } } }
- version を
1.1-RELEASE
→1.2-RELEASE
に変更します。 - uploadArchives の中に
pom.withXml { ... }
を追加します。この中で name, description を追加します。
履歴
2016/08/24
初版発行。