Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在不同的项目之间共享公共代码?_Java_Eclipse_Maven_Dependency Management - Fatal编程技术网

Java 如何在不同的项目之间共享公共代码?

Java 如何在不同的项目之间共享公共代码?,java,eclipse,maven,dependency-management,Java,Eclipse,Maven,Dependency Management,我希望有两个不同的项目:一个连接到Web服务,另一个处理导入的项目 这两个项目将为相同的最终应用程序运行,但应分别在不同的服务器上运行。此外,每个项目都应该能够独立发布(例如,如果我修复了导入器上的bug,我必须在不参考webservice项目的情况下发布它) 项目应该共享一些代码,例如域类。为此,我应该使用哪种maven结构? 3个独立项目,而commons安装在本地maven repo上,并被其他人用作依赖项 或者不需要安装就可以直接从eclipse工作区解析commons项目吗 svn/W

我希望有两个不同的项目:一个连接到Web服务,另一个处理导入的项目

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

项目应该共享一些代码,例如域类。为此,我应该使用哪种maven结构? 3个独立项目,而
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
(如上所述),并将模块的路径基本链接到此项目。通过这种方式,您可以完全检查并构建它们,同时也可以独立地发布它们

在这里你可以找到一个类似的问题。。。此链接为您提供了有关此主题的精彩概述。然而,“系统范围”不是一个好的做法!