1
0

More than 3 years have passed since last update.

【Gradle】Javaプロジェクトでよく行うビルド操作

Posted at

プロパティファイルのエスケープ

リソースのうち、日本語などのマルチバイト文字を含むプロパティファイルは
native2asciiコマンドによってエスケープするのが一般的である。
Gradleでプロパティファイルのエスケープを行うには、
プロパティファイルのエンコーディングがプロジェクトのデフォルト設定と同じかによって
2通りの設定方法がある。

事前知識

GradleのJavaプラグインにおいて、リソースに関係する要素は以下のものがある。

  • 規約
    リソースはsrc/main/resources、srt/test/resourcesディレクトリ以下に配置する
  • タスク
    processResources、processTestResourcesタスクは上記の規約で設定されたディレクトリに
    配置されたリソースファイルをそれぞれ、build/resources/main、build/resources/test
    ディレクトリにコピーする。

プロジェクトのデフォルトエンコーディングと同じ場合

processResourcesタスクなどのCopy型タスクにエスケープを行うフィルターを指定する。
=processResourcesタスクがリソースのコピーを行う際にエスケープを行う

import org.apache.tools.ant.filters.EscapeUnicode

processResources {
    filter(EscapeUnicode)
}

プロジェクトのデフォルトエンコーディングと異なる場合

EscapeUnicodeによるフィルタはデフォルトエンコーディングを設定するため、
エンコーディング指定ができない。
この場合は、Antのnative2asciiタスクを利用し、実行ごとにエンコーディングを指定する。

task native2ascii {
  doLast {
    ant.native2ascii(src: 'src/main/resources',
        dest: processResources.destinationDir,
        encoding: '<任意のエンコーディング>')
  }
}

JARファイルの各種設定

JARファイル名の指定

JARファイル名はデフォルトで<プロジェクトのルートフォルダ名>.javaとなる。
ファイル名の指定方法は以下の2通りがある。

jar {
    archiveName = 'sample.jar'
}

// archiveNameが設定されている場合はそちらが優先される。
// 以下の設定で生成されるJARファイル名は「sample-bin-1.0-jdk17.jar」となる。
jar {
    baseName = 'sample'
    appendix = 'bin'
    version = '1.0'
    classifier = 'jdk17'
}

Javadocの出力内容の指定

Javadocの出力内容は、デフォルトの場合はbuild/docs/javadocディレクトリに
<プロジェクトのルートディレクトリ名>(-<versionプロパティの設定値>)というタイトルの
Javadocが生成される。
Javadocの出力先やタイトルは以下のように変更できる。

javadoc {
    destinationDir = "example/dist/javadoc"
    title = 'example docs V1.0'
}

Javadocの外部参照

Java標準APIなど、すでに存在するJavadocを参照したい場合は、
Javadocへのリンクを生成することができる。

javadoc {
    options.links << 'http://docs.oracle.com/javase/jp/7/api/'
}

参照

この記事は以下の書籍を参考に執筆しています。

参考書籍:Gradle徹底入門 次世代ビルドツールによる自動化基盤の構築

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0