我仍然是Maven的新手,我终于得到了我想要的东西,但现在我需要再次打破它。
以下是我的情景:
我需要编写两个不同的服务器应用程序,它们使用相同的核心功能;只是,对该框架所做的是非常不同的。一个服务器应用程序非常容易/简单 - 它已经完成 - 而另一个更复杂。
代码是以依赖注入样式编写的(使用Guice,如果重要的话),因此它应该非常容易分解。
我的问题是:如何使用Maven在Eclipse中构建项目?你会设置三个不同的项目,如:
server-core
server-appEasy
server-appComplicated
每个服务器都有自己的pom。或者,你会把它全部保存在一个项目中吗?我需要能够轻松地重新编译appEasy
,比如说,从现在起一个月,我在appComplicated
工作。 appEasy
的类已经在子包中。注意:如果没有至少一个模拟依赖注入,core
本身就无法工作。它没有main
类。
所有的想法都得到了赞赏,即使是我没有想过的事情。
答案 0 :(得分:1)
我会有这样的结构:
/server
/server-core
pom.xml
/server-appeasy
pom.xml
/server-appcomplicated
pom.xml
pom.xml
因此每个项目都有自己的pom.xml,允许您单独构建该项目。
但是父文件夹还有一个pom.xml,如果运行它将构建所有项目。您可以通过将项目作为模块包含在父pom中来完成此操作。
E.g。在父pom.xml中
<modules>
<module>server-core</module>
<module>server-appeasy</module>
<module>server-appcomplicated</module>
</modules>
您还可以在父pom tio中使用托管依赖项,以便集中外部依赖项和插件版本号。
答案 1 :(得分:1)
我建议将所有结构化为Maven Multi Module项目。
父项目将三个项目作为模块,第三方依赖项版本以及项目版本作为属性。
然后,在server-appComplicated和server-appEasy中,我会为服务器核心添加一个依赖。
通过这种方式,您将获得: 1-一个要编译的根项目(父项),它将生成两个服务器和core-lib。 2-处理版本号和公共依赖关系的点。
我希望它有所帮助
答案 2 :(得分:0)
我不是专家,但这是我的2美分。 每个项目都需要自己的pom。 你需要一起建立所有项目吗?在这种情况下,拥有父pom可能是有意义的,它具有所有常见的依赖关系。
编辑:在这种情况下,我觉得每个项目只有三个独立的3个pom文件。答案 3 :(得分:0)
有多种方法可以执行此操作,具体取决于部署时的需求。假设'server-core'是'server-appEasy'和'server-appComplicated'工件中的共享工件,我建议如下
希望这有帮助!