Javadocに著作権表示をする方法について調べたのでまとめておきます。
[Maven Javadoc Plugin]
Maven Javadoc Pluginの基本的な使い方は公式サイトに記載されている通りです。
pom.xml
の基本的な書き方は以下の通り。
<project> ... <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <version>3.2.0</version> <configuration> ... </configuration> </plugin> </plugins> ... </build> ... </project>
これでpom.xml
のあるディレクトリでmvn javadoc:javadoc
コマンドを実行すると、Javadocを生成できます。
outputDirectory
の設定をしない場合、target/site/apidocs
ディレクトリにindex.html
などが出力されます。
[bottomパラメータ]
出力されたindex.html
を見ると、次のようになっています。
一番下の部分に、Copyright〜
と著作権表示がされています。
bottomパラメーターの説明を見ると、デフォルト値は以下のようになっています。
Copyright © {inceptionYear}–{currentYear} {organizationName}. All rights reserved.
©
はHTMLの文字実体参照で、ブラウザで表示すると©
となります。©
や©
とも書けます。
–
は同様にブラウザで表示すると-となりますが、inceptionYear
が設定されていない場合は表示されないようです。
▼organizationNameを設定する
このままだと著作権が誰にあるのか不明なので、organizationName
を設定してみます。
pom.xml
に以下のように追記します。
<project> ... <organization> <name>kdnakt</name> </organization> ... <build> ... </build> ... </project>
これでbottom
の表示がCopyright © 2021 kdnakt. All rights reserved.
となるはずです。mvn javadoc:javadoc
コマンドを実行してみます。
上手く行ったようです。
inceptionYear
を設定する場合は、pom.xml
を以下のように書きます。
<project> ... <organization> <name>kdnakt</name> </organization> <inceptionYear>2020</inceptionYear> ... <build> ... </build> ... </project>
出力されたJavadocは以下のようになります。
organizationName
とinceptionYear
で微妙にpom.xml
の書き方が異なるので注意が必要です。
▼オリジナルのbottomを出力する
bottom
の著作権表示部分に独自のメッセージを出力したい場合は、以下のようにbottom
パラメーターを設定します。
<project> ... <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <version>3.2.0</version> <configuration> <bottom>© {currentYear} Made in Tokyo. </bottom> ... </configuration> </plugin> </plugins> ... </build> ... </project>
出力されたJavadocは以下のようになります。
bottom
パラメーターにはHTMLを記述することもできます。
しかし、pom.xml
にそのままHTMLタグを記載してしまうと、mvn javadoc:javadoc
コマンドの実行時に「Unable to parse configuration of mojo org.apache.maven.plugins:maven-javadoc-plugin:3.2.0:javadoc: Basic element 'bottom' must not contain child elements」というエラーが出てしまいます。
XMLにHTMLタグを記述する場合には、<
や>
のようにエスケープするか、CDATAセクションを利用します。
CDATAセクションを利用してbottom
パラメーターにHTMLタグを設定すると以下のようになります。
<project> ... <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <version>3.2.0</version> <configuration> <bottom><![CDATA[<strike>© Made in Japan</strike>]]></bottom> ... </configuration> </plugin> </plugins> ... </build> ... </project>
出力されたJavadocは以下のようになります。
[著作権表示を空にする]
CDATAセクションを利用して、コンテンツなしでタグのみのHTMLを記述すると著作権表示を消すこともできます。
pom.xml
は以下のようになります。
<project> ... <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <version>3.2.0</version> <configuration> <bottom><![CDATA[<div></div>]]></bottom> ... </configuration> </plugin> </plugins> ... </build> ... </project>
出力されたJavadocは以下のようになります。