Mavenの依存モジュールを操作する
ソースは公開されているがMavenリポジトリで公開されていないモジュールを利用するときに困ったので、依存関係を処理するコマンドのメモ。
-
参考
jarを生成
-
target
フォルダにjarファイルを生成する。
$ mvn package
- ソースとJavadocのjarファイル生成
$ mvn source:jar javadoc:jar
テストをスキップする
-
maven.test.skip
プロパティを利用-
-D
オプションでコマンドラインから指定できる。
-
$ mvn package -Dmaven.test.skip=true
fat jar(uber-jar) を作成
- 依存するモジュールを一つのjarにまとめる。
-
assembly
プラグインを利用する(またはshade
)。- ここでは
assembly
を利用する。
- ここでは
-
pom.xml
-
assembly
プラグインを追記し、ディスクリプタjar-with-dependencies
を設定する。
<build>
[...]
<plugins>
[...]
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
-
package
コマンドで、target
フォルダに*-jar-with-dependencies.jar
が出力される。- 通常の
jar
ファイルもあわせて出力される。
- 通常の
$ mvn package
依存ライブラリをダウンロード
任意のフォルダにダウンロード
-
dependency:copy-dependencies
で依存しているモジュールをダウンロードする。- デフォルトでは
./target/dependency
にダウンロードを行う。-
outputDirectory
プロパティでダウンロード先フォルダを変更できる。 -
classifier
プロパティでソースファイル・Javadocのダウンロード指定を行う。
-
- デフォルトでは
$ mvn dependency:copy-dependencies
$ mvn dependency:copy-dependencies -Dclassifier=sources
$ mvn dependency:copy-dependencies -Dclassifier=javadoc
ローカルリポジトリにダウンロード
- デフォルトのローカルリポジトリ
-
${HOME}/.m2/repository
- リポジトリを変更するなら
maven.repo.local
プロパティを変更する
- リポジトリを変更するなら
-
$ mvn dependency:go-offline