我有一个java项目,它由3个子项目组成,每个项目都生成一个.jar工件(并且它们之间有子依赖关系)。 此外,还有一个Web项目依赖于前3个项目并生成war文件。战争文件是我的最终工件,即我发送给客户的东西。

此外,我有一个包含所有其他项目的父模块:

<modules>
    <module>../core</module>
    <module>../commons</module>
    <module>../api</module>
    <module>../web</module>
</modules>

我生成eclipse文件(mvn eclipse:eclipse)并使用eclipse。问题是如果我修改其中一个非Web项目,我必须在将Web项目部署到我的Web容器之前手动安装它。如何使Web项目直接依赖于其他人的源代码而不是安装在存储库中的版本。

有帮助吗?

解决方案

在您的Web应用程序属性中(在Package explorer中右键clic,然后是“properties”),在“J2EE Module Dependencies”中添加三个模块(core,commons和api)。 (其他模块必须在Eclipse工作区中打开)。

其他提示

是否要对部署到存储库的源jar添加依赖项?

如果是这样,您可以通过将 sources 分类器添加到依赖项来实现。请参阅此答案更多细节。

如果没有,你能否进一步澄清。

我认为你的问题是你只是建立战争项目。如果要从命令行构建它,那么您必须构建的是父模块。 “mvn package”在包含父模块的目录中应该足够了。当然这意味着你必须每次都构建所有的包,但这就是maven的工作方式。

依赖:树目标本身将在存储库而不是反应堆中查找。您可以通过mvn安装来解决这个问题,如前所述,或者做一些不那么繁琐的调用反应堆的事情,例如

  

mvn编译依赖:树

适合我。

编辑:D'哦!把这个答案发给了错误的问题。本来是要回答这个

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top