2011-02-04 17 views
10

私たちは:Eclipse 3.6、Maven(M2Eclipse)、2つのプロジェクト(ProjectAとProjectB)、pom.xmlを持っています。"Workspace project"リポジトリを使用する方法はありますか?

ProjectBはProjectAに依存します(mavenを使用)。

  1. ProjectAをローカルリポジトリ(maven install)にインストールすると、ProjectBは依存関係を解決しても問題ありません。

  2. ProjectAをローカルリポジトリにインストールしない場合。 Maven POM Editorでは、ProjectBをProjectBの依存として追加します(この依存関係を解決するための "workspace project"リポジトリを使用したM2Eclipse)。

OK。しかし、私たちが "mavenパッケージ"や他のプラグインのゴール...依存関係が解決されなければ。

ダウンロード:http://repo1.maven.org/maven2/Artifact/ProjectA/maven-metadata.xml

そしてもちろん、それは解決できない そして、我々はそのような代を持っています。

今質問です。 ProjectBのビルド時に「ワークスペースプロジェクト」をどのように使用できますか?

P.S.なぜ私は "maven install"を使用していないのですか? OK、それは100%メソッドですが、私がいくつかの小さな変更を行うと、余分な操作が長すぎます。

P.S. "Workspace project"では、Window - > Show View - > Maven Repositoryを見ることができます。

答えて

1
  1. 作業領域の依存関係を解決する必要があります。同様に、オフラインチェックボックスを選択しpackage

    として設定された目標>> [プロジェクトBは>「ワークスペースアーティファクトを解決する」にチェック新しい> Mavenのビルド>設定を実行>実行

    、これを試してみてください。

  2. おそらく、projectB依存性タグにprojectAの正確なversionを指定する必要があります。そうでなければ、最新のものを取得するためにMavenのパブリックリポジトリを探すかもし​​れません。

希望します。

+0

1.助けてください。 "ダウンロード中:http://repo1.maven.org/maven2/ProjectA .... pom"パブリックリポジトリを使用して解決してください。オフラインですぐに「POM for ProjectAが見つからない、依存関係の情報がありません」と書かれています。 2.バージョンが提供されます。 mmm ...問題はパブリックリポジトリにありません。プロジェクトの依存関係を解決する際に問題があり、ローカルリポジトリにインストールされていません。 – Alexander

0

は(ProjectBの中で)これを試してみてください:

Maven > Enable Workspace Resolution 

同様の問題は、そのように、ここで解決されました。

2

Eclipseから「Mavenパッケージ」などの目標を実行するというアイデアは、たとえばコマンドラインから実行した場合、どのような操作を行っても構わないと思います。あなたが与えているシナリオはコマンドラインでもうまくいきませんでした。

プロジェクトBがプロジェクトA(pom.xml経由)に依存する場合、プロジェクトAがリポジトリで利用可能である必要があることを意味します。ローカル(mvn install経由)でもリモート経由(mvn deploy)でも問題はありませんが、mvnパッケージでは不十分です。それは/ targetフォルダにパッケージを置くだけです。

唯一の例外は、両方のプロジェクトが私が想定しているのと同じ原子炉にある場合です。つまり、両方のプロジェクトが他の '親'プロジェクトのモジュールです。その場合、サブモジュールの1つでMavenターゲットをトリガーすることで、依存関係を正常に解決できる可能性があります。しかし100%確かではありません。

質問:「今質問です。ProjectBをビルドするときに「ワークスペースプロジェクト」を使用する方法は?」いいえ、私はそうは思わない。

+0

M2Eclipseが正しくセットアップされている場合、Eclipseの "Project> Build All"を押すと、両方のプロジェクトが同じリアクターにあるように動作し、動作します。あなたが正しく推測したように、それはコマンドラインMavenを起動するので、あなたが困っている "Mavenビルドで実行..."を試みるときだけです。 – JBert

関連する問題