2016-06-18 6 views
0

ここでは、私が何をしようとしていますものです:含める

  1. 私はなどの一般的なクラスが含まれているユーティリティプロジェクトを持っている、と私はそのjar私の2を参照する必要があります他のプロジェクト。普通のjarcommon.jarで、私が使っている他のプロジェクトはservice1です。 service1にローカルのrepoフォルダを定義し、そこにcommon.jarを含め、それをservice1pom.xmlの依存関係として定義します。
  2. コンパイル時は問題なく動作しますが、これもEclipse内から実行できます。
  3. は今、私はservice1.jarを生成し、私はクラスパスに含まlibフォルダをjava -jar service.jarとしてそれを実行して持つことができるようにlibフォルダにコピーされたすべての依存関係を持っていると思います。私はcopy-dependenciesプラグインを使用してこれを行うことができます。

    しかし、このプラグインはコピーのみservice1の直接の依存関係をしてpom.xmlcommonのプロジェクトに記載されているjar Sをコピーしません。

しかし、私は正常にservice1を実行するための実行時にこれらのcommonプロジェクトの依存関係jar秒が必要です。

どのように私はservice1の最終libフォルダにコピー、それらのcommonプロジェクトの依存関係jar Sを得ることができますか?

ありがとうございます。

答えて

0

日時: - Mavenのと一緒に一つだけのローカルリポジトリフォルダがあるはずですし、それがデフォルトで~/.m2/repositoryでだ「私はservice1の現地レポフォルダを定義します」。 Maven/Introduction to Repositoriesおよび Maven/Settings Referenceを参照してください。

このリポジトリはコンパイル時に "lib"フォルダとして機能し、POMで正しく宣言されていれば、プロジェクトの自動的かつ直接的な依存関係を自動的に処理します。 Maven/Introduction to the Dependency Mechanismを参照してください。

したがって、通常は依存関係を自分でコピーする必要はありません。

したがって、ユーティリティプロジェクトをMavenプロジェクトに変換してmvn installを実行するのが最善です。このようなアーティファクトは、それが依存するアーティファクトと一緒にローカルのMavenリポジトリに置かれ、他のプロジェクトの2によって参照されることがあります。

これが不可能な場合は、Apache Maven Install Plugininstall-file目的でローカルリポジトリにユーティリティjarを置くことができます。

  • install:install-fileローカルリポジトリに外部で作成されたアーティファクトをインストールするには、主に使用され、そのPOMと一緒に。その場合、プロジェクト情報はオプションで指定されたpomFileから取得できますが、コマンドラインパラメータを使用して指定することもできます。
+0

こんにちはジェロルド - 答えをありがとう。しかし、私は2つの理由でそのアプローチには進まない:1 – user1790625