Maven3のはじめかた
  • 概要
  • はじめに
    • 電子書籍の配布形式について
  • Maven入門
    • Mavenのインストール
    • Mavenの使い方
    • ビルド・ライフサイクル
    • pom.xml
    • Mavenリポジトリ
    • 依存関係
    • Mavenプラグイン
  • プロジェクトをリポジトリに公開する
    • バージョンの種類と使い分け
    • 公開先のリポジトリを指定する
    • リポジトリへの公開
  • Mavenプラグインを実装する
    • Mavenプロジェクトを作成する
    • Mojoを作成する
    • 単体テストを作成する
    • Mavenリポジトリを通じて配布する
  • モジュール
    • モジュールでプロジェクトに構造を持ち込む
    • マルチモジュール構成プロジェクト用実行時オプション
  • 困ったときの逆引き
  • 付録
    • 用語集
    • サンプルプロジェクト
Powered by GitBook
On this page
  • 環境によって結果が異なる場合
  • Mavenプラグインに設定がきちんと渡っているか不安な場合
  • ClassNotFoundExceptionが出る場合

困ったときの逆引き

Previousマルチモジュール構成プロジェクト用実行時オプションNext付録

Last updated 6 years ago

この章ではMaven利用時にありがちな問題について、調査方法と解決方法を説明します。

環境によって結果が異なる場合

実行環境によって結果が異なる場合、まずはJDKのバージョンやLocaleなどに環境差がないかどうか確認します。 以下のコマンドで環境依存の情報を一括確認できますので、利用してください。

mvn -v

またファイルパスによる問題なら、以下も確認してください。

  • Windowsではバックスラッシュ(または円記号)、UNIX系ではスラッシュをに利用します。

    Mavenの設定では一括してスラッシュを利用して構いませんが、必要に応じて${file.separator}を利用できます。

  • Windowsでは。

    Javaはパッケージとフォルダ階層を等しくする必要があるため、この制限に引っかかる可能性があります。

    プロジェクトはドライブ直下など、パスが浅い場所に作成するようにしてください。

これでも解決できない場合は、Mavenの設定に相違がないか確認するとよいでしょう。Mavenは実行環境に応じて 設定を切り替える機能を提供しているため、これによって結果が異なってしまっているのかもしれません。 Mavenは原因究明に便利なプラグインを提供していますので、以下に紹介します。

まずはです。 これは実行時に有効化されているMavenプロファイルを一覧で表示してくれます。有効化されているMavenプロファイルに差があれば、そこに原因があるかもしれません。 このゴールを利用するには、以下のようにmvnコマンドを実行します:

mvn org.apache.maven.plugins:maven-help-plugin:2.2:active-profiles

次にです。 pom.xmlは継承やsettings.xmlやMavenプロファイルなど、様々な要因によって要素が書き換えられますが、 このゴールはそうした変動要因を考慮した、最終的な設定を出力してくれます。 このゴールを利用するには、以下のようにmvnコマンドを実行します:

mvn org.apache.maven.plugins:maven-help-plugin:2.2:effective-pom

最後にです。 これはMavenリポジトリのミラーサイトなど、pom.xmlに書かれていない(プロジェクトに依存しない)設定を参照するために使用します。 このゴールを利用するには、以下のようにmvnコマンドを実行します:

mvn org.apache.maven.plugins:maven-help-plugin:2.2:effective-settings

Mavenプラグインに設定がきちんと渡っているか不安な場合

mvnコマンドを実行するときに、-Xオプションを加えてみてください。 デバッグログが出力され、各プラグインがどのような設定を受け取ったか表示されるようになります。

デバッグログの出力はビルドの実行を低速化させ、ログファイルを大きくしますので、原因究明するときにのみ 使うようにするとよいでしょう。

ClassNotFoundExceptionが出る場合

TODO

この他にもは 環境依存の原因究明に便利なゴールを多数提供していますので、一度見ておくとよいでしょう。

ファイル区切り文字
ファイルのパスが長すぎると問題になることがあります
maven-help-pluginのactive-profilesゴール
maven-help-pluginのeffective-pomゴール
maven-help-pluginのeffective-settingsゴール
maven-help-plugin