【问题标题】:How to share commons code between different projects?如何在不同项目之间共享公共代码?
【发布时间】:2014-05-28 13:42:31
【问题描述】:

我想要两个不同的项目:一个连接到网络服务,另一个项目处理导入。

两个项目将针对相同的最终应用程序运行,但应分别在不同的服务器上运行。此外,每个项目都应该能够独立发布(例如,如果我修复了导入器上的错误,我必须在不参考 web 服务项目的情况下发布它)。

项目应该共享一些代码,例如领域类。为此我应该使用哪种 Maven 结构? 3 个独立项目,而 commons 安装到本地 maven repo 并被其他人用作 dependency

或者是否有可能直接从eclipse工作区解析commons项目而无需安装它?

svn/Webservice/pom.xml
svn/Cache-Importer/pom.xml
svn/Commons/pom.xml //used by both projects and contains eg shared domain code

【问题讨论】:

标签: java eclipse maven dependency-management


【解决方案1】:

如您所料,我会推荐三个独立项目模型。 Webservice 和 Cache-Importer 项目将依赖于 Commons。将它们作为单独的项目允许您为这些项目拥有不同的生命周期,并且您可以发布一个,但不能发布另一个。

如果您想将它们放在同一个聚合器中,这将使您将它们全部发布在同一个版本下,并且某些模块当时可能不需要版本升级。因此,在我看来,这将是一个更好的方法。

如果您想将它们一起构建,但也想将它们作为独立的模块,您可以创建第四个项目,在pom.xml 中将它们定义为<modules/>。您将需要设置svn:externals(如here 所述)并将模块的路径基本上链接到该项目。这样,您就可以完全检查并构建它们,同时您也可以独立发布它们。

【讨论】:

    猜你喜欢
    • 2014-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-05
    • 1970-01-01
    • 2018-03-10
    • 2010-11-16
    相关资源
    最近更新 更多