!!!参考
https://qiita.com/yasushi-jp/items/97fbd3487690e2a79933
!!!mavenを使ったHelloWorld
!プロジェクト作成
mvn archetype:generate -DgroupId=com.example -DartifactId=sample
:groupId:ルートパッケージに使用される
:artifactId:プロジェクト名。ディレクトリ名などに使用される
!ビルド
*mvn compile
**プログラムをコンパイル
*mvn package
**jarファイル作成
*mvn package -DskipTests=true
**テストをスキップしてjarファイル作成
*mvn dependency:build-classpath
**クラスパスを表示。コマンドラインで手動で実行したいときとか便利。
*mvn install dependency:copy-dependencies
**必要なjarファイルをtargetのdependencyにダウンロードする
!実行
java -cp target xxxxx.jar com.example.App
!実行(exec-maven-pluginを使う)
pom.xmlのpluginsに以下を追記。
org.codehaus.mojo
exec-maven-plugin
1.2.1
com.example.App
mainClassはメインクラス。
mvn exec:java
!!!使い方いろいろ
!!コンパイルの対象のファイルを減らす
標準のままだと全てのJavaファイルがコンパイルの対象となる。
変更のあったファイル(classファイルより新しいJavaファイルのみ)をコンパイルするほうが効率が良い
pom.xmlのpluginsに以下を追加すると新しいファイルのみコンパイルの対象となる。
org.apache.maven.plugins
maven-compiler-plugin
3.1
false
!!コンパイルの対象のファイルを減らす(コマンドライン)
pom.xmlに記載せずにuseIncrementalCompilationを指定することもできる
mvn compile -Dmaven.compiler.useIncrementalCompilation=false
!!ソースパス
org.codehaus.mojo
build-helper-maven-plugin
add-source
generate-sources
add-source
../demo2/src/main/java
!!一部ソース除外
ソースパスを追加した場合などで、不要なファイルがある場合は除外できる。
ただし、指定方法は絶対パス等ではなく、
**/some/full/directory/*
**/some/single/File.java
などのような指定方法をする。
org.apache.maven.plugins
maven-compiler-plugin
**/demo2/Demo2Application.java
!!ローカルリポジトリ(.m2)のパスを変更
!環境変数で変更する方法
https://stackoverflow.com/questions/16591080/maven-alternative-m2-directory
export MAVEN_OPTS="-Dmaven.repo.local=/path/to/repository"
{{category2 プログラミング言語,Java}}