Java 如何在不同的项目之间共享公共代码?
我希望有两个不同的项目:一个连接到Web服务,另一个处理导入的项目 这两个项目将为相同的最终应用程序运行,但应分别在不同的服务器上运行。此外,每个项目都应该能够独立发布(例如,如果我修复了导入器上的bug,我必须在不参考webservice项目的情况下发布它) 项目应该共享一些代码,例如域类。为此,我应该使用哪种maven结构? 3个独立项目,而Java 如何在不同的项目之间共享公共代码?,java,eclipse,maven,dependency-management,Java,Eclipse,Maven,Dependency Management,我希望有两个不同的项目:一个连接到Web服务,另一个处理导入的项目 这两个项目将为相同的最终应用程序运行,但应分别在不同的服务器上运行。此外,每个项目都应该能够独立发布(例如,如果我修复了导入器上的bug,我必须在不参考webservice项目的情况下发布它) 项目应该共享一些代码,例如域类。为此,我应该使用哪种maven结构? 3个独立项目,而commons安装在本地maven repo上,并被其他人用作依赖项 或者不需要安装就可以直接从eclipse工作区解析commons项目吗 svn/W
commons
安装在本地maven repo上,并被其他人用作依赖项
或者不需要安装就可以直接从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
正如您所猜测的,我推荐三个独立的项目模型。Webservice和缓存导入器项目将取决于Commons。将它们作为单独的项目允许您对这些项目有不同的生命周期,您可以发布一个,但不能发布另一个 如果您想将它们放在同一个聚合器中,这会将它们绑定到在同一版本下发布,并且某些模块当时可能不需要版本升级。因此,在我看来,这将是一个更好的办法
如果您希望将它们构建在一起,但也希望将它们作为独立的模块,那么您可以创建第四个项目,该项目将它们定义为
pom.xml
中的
。您需要设置svn:externals
(如上所述),并将模块的路径基本链接到此项目。通过这种方式,您可以完全检查并构建它们,同时也可以独立地发布它们 在这里你可以找到一个类似的问题。。。此链接为您提供了有关此主题的精彩概述。然而,“系统范围”不是一个好的做法!