5

m2eプラグイン(バージョン1.0.1)でEclipseIndigoを使用しています。2つの別々のワークスペースプロジェクトがあります。基本的にVaadinウィジェットであるMavenプロジェクトと、そのウィジェットを参照しているメインプロジェクトである2番目のMavenプロジェクトです。

<dependency>
   <groupId>com.mycompany.widget</groupId>
   <artifactId>Calendar</artifactId>
   <version>1.2</version>
   <type>jar</type>
</dependency>

ウィジェットプロジェクトでmvncleaninstallを実行すると、jarとして適切にパッケージ化され、ローカルのMavenリポジトリでも利用できます。メインプロジェクトでウィジェットのクラスを使用することもできます。ただし、私のメインプロジェクトのMaven依存関係では、ウィジェットプロジェクトはjarではなくクラスフォルダーとして表示されます(ただし、他のすべての外部ウィジェット依存関係はjarファイルとして表示されます)。

これにより、dependency:unpack-dependencies(またはdependency:copy-dependencies)を使用して依存関係をメインプロジェクトに解凍(またはコピー)しようとすると、いくつかの問題が発生します。Mavenビルドは次の場合に失敗します:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-dependency-plugin:2.4:unpack-dependencies (default-cli) on project [main project]: Error unpacking file: /.../Calendar/target/classes to: /.../[main-project]/target/classes 
[ERROR] org.codehaus.plexus.archiver.ArchiverException: The source must not be a directory.

私の質問は、ウィジェットプロジェクトをメインプロジェクトのクラスフォルダーではなくjarとして参照するにはどうすればよいですか?

4

1 に答える 1

6

それらは別々のディレクトリにありますよね?これを試してください: プロジェクトを右クリックし、Maven -> Disable Workspace Resolution を選択します。

また、プロジェクトのプロパティを確認し、プロジェクトが Java Build Path -> Projects で参照されていないことを確認してください。

于 2011-12-15T15:02:12.640 に答える