我正在处理Web服务/ API和相应的API客户端。两者都是Maven项目。
我目前正在将这两个项目作为单独的项目进行工作。但是,我开始相信将这两个项目合并为一个可能会更好,因为......
如果我将这两个项目合并为一个项目,如何在同一个Maven项目中将这些项目分开?我希望能够彼此独立地构建 API或API客户端。
答案 0 :(得分:0)
我认为项目分离通常是一种很好的做法。如果您从小型组件构建终端系统,则始终具有更大的范围和灵活性。此外,一个模块的更改不会影响其他模块。此外,如果您想为客户端添加第二个实现,分离将是更好的选择。我绝对投票让他们分开。
在合并时:我认为即使你的客户端功能很小,你也应该在合并前三思而后行。
如果您仍然相信合并,那么对于构建,我建议您使用Maven profiles来自定义构建。
答案 1 :(得分:0)
我目前使用的是多模块maven项目模式,几乎与您的完全相同。
parent pom
+---API
+---WS
+---client-lib
在同一个maven 项目中将两个工件或库作为不同的模块绝对没有问题 ,而不是两个单独的项目。
要配置,只需将父pom打包设置为pom
,建立子文件夹并使用<modules>
定义以正确的构建顺序列出每个子模块。
如何单独构建它们?你只需进入子目录并从那里构建。
cd client-lib
mvn clean install
有一点需要注意 - client-lib的依赖关系需要已经构建过一次。但是对于增量更改,您可以在子目录(子模块)中再次运行maven。
至于您提到的运行集成测试,还有一个优点,即所有子模块都可用于集成测试。您甚至可以添加名为integration-tests的子模块。
parent pom
+---API
+---WS
+---client-lib
+---integration-tests
maven进一步祝你好运!