共有ライブラリを管理するために Sonatype の Nexus Repository Manager OSS を使用する ( その14 )( sources と javadoc をアップロードする )
概要
- 今回の手順で確認できるのは以下の内容です。
- Nexus にライブラリをアップロードする時に sources と javadoc もアップロードする。
参照したサイト・書籍
How to build sources jar with gradle
http://stackoverflow.com/questions/11474729/how-to-build-sources-jar-with-gradle- sources と javadoc の jar ファイルを生成するための gradle の設定が記載されています。
Eclipse gradleタスクでのjavadoc出力文字コード指定
http://qiita.com/nakkspeed/items/b18560d9dfd32308e495- 上の stackoverflow の回答に書かれている設定だけではエラーが出たので、その解決策を調査している時に参照しました。
IntelliJ IDEA 2016.2 Help - Viewing Inline Documentation
https://www.jetbrains.com/help/idea/2016.2/viewing-inline-documentation.html
目次
- Javadoc のコメントを追加する
- sources と javadoc をアップロードするための設定を build.gradle に追加する
- Nexus にアップロードする
- ksbysample-webapp-demo でアップロードした sources と javadoc が閲覧できることを確認する
手順
Javadoc のコメントを追加する
ksbysample-library-depend-nospring プロジェクトを開きます。
Javadoc をアップロードするので、ソースに Javadoc のコメントを追加します。src/main/java/ksbysample/library/dependnospring の下の OrderBuilder.java を リンク先の内容 に変更します。
sources と javadoc をアップロードするための設定を build.gradle に追加する
build.gradle を リンク先の内容 に変更します。
Gradle projects View の左上にある「Refresh all Gradle projects」ボタンをクリックして build.gradle を反映します。
Nexus にアップロードする
uploadArchives タスクを実行して Nexus に登録します。
Nexus の画面を見ると ksbysample-library-depend-nospring の 1.1-RELEASE が登録されていることが確認できます。
1.1-RELEASE をクリックして次の画面を見ると sources と javadoc の JAR ファイルが登録されていることが確認できます。
ksbysample-webapp-demo でアップロードした sources と javadoc が閲覧できることを確認する
ksbysample-webapp-demo プロジェクトを開きます。
build.gradle を リンク先の内容 に変更します。
Gradle projects View の左上にある「Refresh all Gradle projects」ボタンをクリックして build.gradle を反映します。
まず sources.jar をダウンロードして閲覧できることを確認します。OrderController.java を開いた後、
new OrderBuilder()
のOrderBuilder
の部分にカーソルを移動して Ctrl+B を押してソースを表示します。decompile されたソースではなく Javadoc のコメントが記述されたソースが表示されました。
次に javadoc.jar をダウンロードして閲覧できることを確認します。OrderController.java の
.price(2000)
のprice
の部分にカーソルを移動して Ctrl+Q を押します。Javadoc が表示されました。
ソースコード
OrderBuilder.java
package ksbysample.library.dependnospring; import org.apache.commons.lang3.builder.Builder; import java.math.BigDecimal; /** * Order クラスのインスタンスを Builder パターンで生成するためのクラスである。 */ public class OrderBuilder implements Builder<Order> { private Order order; /** * OrderBuilder クラスの新規インスタンスを生成する。 */ public OrderBuilder() { this.order = new Order(); } /** * 注文数を設定する。 * @param number 注文数 * @return OrderBuilder クラスのインスタンス */ public OrderBuilder number(int number) { this.order.setNumber(new BigDecimal(Integer.toString(number))); return this; } /** * 単価を設定する。 * @param price 単価(単位:円) * @return OrderBuilder クラスのインスタンス */ public OrderBuilder price(int price) { this.order.setPrice(new BigDecimal(Integer.toString(price))); return this; } /** * Order クラスのインスタンスを生成する。 * @return 生成された Order クラスのインスタンス */ @Override public Order build() { return this.order; } }
- Javadoc のコメントを追加します。
ksbysample-library-depend-nospring/build.gradle
group 'ksbysample.library' version '1.1-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) } } } }
- version を
1.0-RELEASE
→1.1-RELEASE
に変更します。 javadoc { ... }
を追加します。- sourcesJar タスクを追加します。
- javadocJar タスクを追加します。
artifacts { ... }
を追加します。
ksbysample-webapp-demo/build.gradle
dependencies { compile('org.springframework.boot:spring-boot-starter-web') testCompile('org.springframework.boot:spring-boot-starter-test') compile('ksbysample.library:ksbysample-library-simpleutils:1.0-RELEASE') compile('ksbysample.library:ksbysample-library-depend-nospring:1.1-RELEASE') }
- ksbysample.library:ksbysample-library-depend-nospring のバージョンを
1.0-RELEASE
→1.1-RELEASE
に変更します。
履歴
2016/08/24
初版発行。