Java EEサーバー/コンテナーにそのjarが構成されていない限り、systemPathを使用することはできません。
Mavenは開発とコンパイル時のみであることを忘れないでください。warファイルがビルドされると、mavenは、必要なすべてのjarをWEB-INF/libフォルダーに配置したことを除いて効果がありません。
システムスコープを指定する場合、戦争が展開されたときにjarが存在することを確認するのはユーザーの責任であることを意味します。あなたはすでにそれを行うためのフレームワークを持っていて、そのjarでビルドの依存関係を邪魔したくないのですが、開発中にのみMavenで利用できるようにする必要があります。
他の同様のスコープは「提供」されます。たとえば、JBossまたは企業の共通デプロイメントTomcatフレームワークは、サーバーの起動によってロードされ、サーバー内のすべてのアプリに共通のSpringやHibernateなどの多くのjarをすでに提供しています。したがって、mavenビルドでそれらをwarファイルに含めることは望ましくありません。
正しい方法では、Mavenの達人が教えてくれます。独自のMavenサーバーを用意し、必要なアーティファクトをそのサーバーに組み込むことです。ただし、それが不可能な場合もあります。
したがって、そのような場合は、プロジェクトと一緒に配布され、バージョン管理にチェックインされるプロジェクトレベルのリポジトリを作成します。コマンドを実行してmvn install
、「project-repo」などのプロジェクトレベルのディレクトリを作成します。
http://maven.apache.org/plugins/maven-install-plugin/examples/specific-local-repo.html(慣れているため、ほとんどの場合、mvn installを実行するのではなく、手動でリポジトリを構築します)。
次に、POMで、リポジトリの1つとしてfile:// $ {project.basedir}/project-repoを指定します。これに関する注意点は、Windowsでは、Windowsファイルシステムパスを参照するときに、「file://」の後のペア以外のスラッシュをバックスラッシュにする必要があることです。
<repositories>
<repository>
<id>my-repo1</id>
<name>my custom repo</name>
<url>http://ho.ho.ho</url>
</repository>
<repository>
<id>project-repo</id>
<name>my project repo</name>
<url>file://${project.basedir}\project-repo</url>
</repository>
</repositories>