articles:maven

Apache Maven

  • clean
  • compile - コンパイル
  • 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を指定すると、テストコードのコンパイルもスキップする。

ファイルは 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>
mvn eclipse:eclipse

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で動くようにする

  1. メニューのウィンドウ-設定を開き、Java-インストール済みのJRE-実行環境でpom.xmlに指定したJavaバージョンの実行環境を選択する。
  2. JREとJDKが両方あるなら、JDKの方にチェックを入れる。
  • 最終更新: 2020-12-22 02:18
  • by nabium