Apache Maven
リンク
goals
cleancompile- コンパイルtest- テストpacakge- 成果物を生成install- test, compile, package した後にローカルリポジトリに登録dependency:go-offline- オフライン化するために依存モジュールをダウンロードするdependency:tree- 依存関係をツリー表示dependency:list -Dsort -DincludeScope=test- 依存モジュールの一覧表示dependency:copy-dependencies -DoutputDirectory=lib -DincludeScope=runtime- 依存モジュールを指定ディレクトリにコピーするdependency:analyze-report-target/dependency-analysis.htmlを出力help:active-profiles- アクティブなプロファイルを表示archetype:generate
プロキシの設定
nonProxyHostsの記述形式はNetworking Propertiesを参照。
- ~/.m2/settings.xml
<settings> <proxies> <proxy> <active>true</active> <id>myHttpProxy</id> <protocol>http</protocol> <username>proxyuser</username> <password>proxypass</password> <host>172.31.0.2</host> <port>3128</port> <nonProxyHosts>127.0.0.1|localhost|172.31.*|*.internal</nonProxyHosts> </proxy> <proxy> <active>true</active> <id>myHttpsProxy</id> <protocol>https</protocol> <username>proxyuser</username> <password>proxypass</password> <host>172.31.0.2</host> <port>3128</port> <nonProxyHosts>127.0.0.1|localhost|172.31.*|*.internal</nonProxyHosts> </proxy> </proxies> </settings>
プロファイルの指定
-P<profile> でプロファイルを指定。
テストをスキップする
コマンドラインで-DskipTestsを指定すると、テストの実行をスキップする。
コマンドラインで-Dmaven.test.skipを指定すると、テストコードのコンパイルもスキップする。
JUnitのテストでファイルを読み込む
ファイルは src/test/resources の下に配置する。
Eclipseでは、 src/test/resources をソースパスに追加する。
起動ディレクトリを特定できないので、クラスローダから取得する。
private File loadTestFile(String filename) throws FileNotFoundException { try { URL fileURL = ClassLoader.getSystemResource(filename); return new File(fileURL.toURI()); } catch (URISyntaxException | NullPointerException e) { throw new FileNotFoundException(filename); } }
試験実行時の環境変数とシステムプロパティを設定する
- pom.xml
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <environmentVariables> <VAR_NAME>var_value</VAR_NAME> </environmentVariables> <systemPropertyVariables> <PROP_NAME>prop_value</PROP_NAME> </systemPropertyVariables> </configuration> </plugin> </plugins> </build>
MavenのプロジェクトからEclipseのプロジェクトを作成する
mvn eclipse:eclipse
EclipseからMavenを実行するとコンパイルに失敗する場合
Eclipseの設定のインストール済みのJREでJDKを追加してデフォルトにしているのに、
JDKで実行していないというエラー(No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?)が発生する。
インストール済みのJREに同じバージョンでJDKとJREがあるとJREが使用される場合がある。
- Mavenの実行結果を表示している
コンソール画面のタイトルがJREのjavaw.exeになっている。 - プロジェクトの
ビルド・パスを開き、ライブラリータブでJREシステム・ライブラリーの内容をチェックすると、jarファイルの参照先がJREのディレクトリになっている。
JDKで動くようにする
- メニューの
ウィンドウ-設定を開き、Java-インストール済みのJRE-実行環境でpom.xmlに指定したJavaバージョンの実行環境を選択する。 - JREとJDKが両方あるなら、JDKの方にチェックを入れる。