eclipse中的Maven项目 - 部署程序集构建失败

Vis*_*hal 14 eclipse deployment maven

对不起是冗长的......

我有一些现有的maven项目.我使用Maven - >导入现有的Maven项目将它们导入Eclipse .

这给了我6个单独的项目和一个项目,列出了它下面的所有6个项目.(伞形项目中定义了6个模块,转换为6个eclipse项目 - 据我所知,maven是如何工作的)

其中一个项目A需要另外两个项目B和C(在编译时和运行时).

构建路径 - 在AI的构建路径上有一个库作为Maven依赖项.它建立得很好.

部署程序集 - 但是在A的部署程序集上没有用于部署的条目web-inf/lib.因此,当tomcat启动时,它找不到任何必需的jar或项目B和C.所以我在部署程序集中添加了一个条目:source - maven和dependencies deploy - web-inf/lib.Tomcat出现了,我的项目A的webapp出现了.

然而,这打破了eclipse构建 - 构建eclipse时抱怨: "无效的类路径发布导出项目条目不受支持"

我看到的是,在构建路径下,有一个新的条目添加到web-inf/lib以在maven-dependencies下发布/导出.删除它也会从部署程序集中删除maven条目.

唯一的解决方法是在部署程序集中我指定web-inf/libmaven生成的under目标,但这会导致拾取项目B和C的过时副本.

为什么我需要这个设置是因为当我在Eclipse中对项目B和C进行更改并在Eclipse中构建它时,我希望在调试项目A时看到更改.我不想再次在B和C上运行maven构建因为它很耗时.

任何帮助深表感谢.

我确实试过包括MAVEN2_CLASSPATH_CONTAINER但是总是空的,当tomcat运行时它找不到必要的库.(BTW MAVEN2_CLASSPATH_CONTATINER设定的是什么谷?)

这是在Eclipse Indigo Mac OSX上.

小智 37

您需要将相关项目添加到Deployment Assembly中.

右键单击项目 - >属性 - >部署程序集 - >添加

  • 这是一个比接受的答案更好的解决方案. (2认同)

小智 7

我解决了这样做:

右键单击我的eclipse项目 - > Maven - >更新项目配置...


Vis*_*hal 5

想出来..但不完全......

所以我在部署程序集中添加了maven依赖,如前所述.

Maven dependency -> WEB-INF/lib
Run Code Online (Sandbox Code Playgroud)

另外还添加了项目BC:

B -> WEB-INF/lib and C->WEB-INF/lib
Run Code Online (Sandbox Code Playgroud)

不知怎的,这种方式B和C没有添加到java构建路径中的发布/导出中.我不知道eclipse如何知道不从maven repo导出B和C,而是从项目B和C本身导出它.

无论如何那些其他日子...现在我很高兴:)


小智 1

对于搜索此内容的其他人来说,您似乎还可以手动将以下内容添加到 .classpath 文件中

<classpathentry combineaccessrules="false" kind="src" path="/B"/>
Run Code Online (Sandbox Code Playgroud)