Local Maven Dependency项目被引用为类文件夹而不是jar

use*_*501 5 m2eclipse vaadin maven maven-dependency-plugin

我正在使用Eclipse Indigo和m2e插件(版本1.0.1).我有两个独立的工作区项目:Maven项目基本上是Vaadin小部件,第二个Maven项目是我的主要项目,它引用该小部件:

<dependency>
   <groupId>com.mycompany.widget</groupId>
   <artifactId>Calendar</artifactId>
   <version>1.2</version>
   <type>jar</type>
</dependency>
Run Code Online (Sandbox Code Playgroud)

如果我在widget项目上运行mvn clean install,它将被正确打包为jar,也可以在我的本地Maven存储库中使用.我也可以在我的主项目中使用小部件的类.但是,在我的主项目的Maven依赖项中,窗口小部件项目显示为类文件夹而不是jar(尽管所有其他外部窗口小部件依赖项都显示为jar文件).

当我尝试使用依赖项将依赖项解包(或甚至复制)到我的主项目时,这会导致一些问题:unpack-dependencies(resp.依赖项: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.
Run Code Online (Sandbox Code Playgroud)

我的问题是:如何在我的主项目中将我的widget项目引用为jar而不是类文件夹?

miq*_*miq 6

它们位于不同的目录中,对吧?试试这个:右键单击你的项目,选择Maven - > Disable Workspace Resolution.

还要检查项目属性,并确保在Java Build Path - > Projects中未引用该项目.