繁体   English   中英

两个带有公共模块的Maven项目

[英]Two Maven project with public module

我有一个项目,该项目分为三个部分: PCommonPWebappPAdminConsole PWebappPAdminConsolePAdminConsole中的动态Web项目, PCommon是Java项目,并且两个Web项目都将PCommon的api作为lib文件夹中的jar文件使用。

过去,我在构建路径中添加了import project ,我使用Ant来编译和构建PWebappPAdminConsole并且在两个build.xml文件中都有

<ant antfile="${common}/../build.xml" inheritAll="false"></ant>

使PCommon成为jar文件。

现在,我将所有项目更改为Maven Project 但是我不知道如何使两个Web项目包含一个公共模块,以及当我运行package maven命令打包一个Web项目时如何将我的PCommon自动PCommon到jar文件中。

现在,我总是将我的PCommon.jar部署在nexus服务器上。 然后在Web项目的pom.xml中添加dependcy 但是我认为没有必要在公共服务器上部署jar,因此我认为这不是实现此目标的正确方法。 有什么更方便的方法吗?

我知道我可以使用父pom.xml创建父项目。 但是我有两个Web项目需要该模块, PCommonpom.xml只能扩展一个父对象,不是吗?

解决Maven中依赖关系的常用方法是使用存储库。 第一次需要依赖项时,它将从您的存储库下载并安装在本地计算机上的存储库中。 如果远程存储库中没有依赖项,则必须以其他方式将其安装到本地。 还有其他几种无需使用存储库即可解决依赖关系的方法,但我不建议使用。

为了使此操作更加方便,您可以使用适当的IDE。 我将Eclipse与m2e插件一起使用。 它支持一种称为“工作空间解析”的功能,默认情况下应启用该功能。 在回退到存储库查找之前,它将在您的工作区中扫描其他Maven项目。 这样做的好处是,您在普通项目中所做的每个更改都可以立即在其他项目中使用。 我认为它也会在后台安装到本地存储库中,但我不确定。 无论如何,您不必自己担心。

IntelliJ IDEA的工作原理与此类似,但我没有太多经验。 我确定Netbeans也支持Maven。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM