プロパティファイルのエスケープ
リソースのうち、日本語などのマルチバイト文字を含むプロパティファイルは
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/'
}
参照
この記事は以下の書籍を参考に執筆しています。