Maven / eclipse项目结构

时间:2013-02-08 15:21:59

标签: java eclipse maven project-management

我仍然是Maven的新手,我终于得到了我想要的东西,但现在我需要再次打破它。

以下是我的情景:

我需要编写两个不同的服务器应用程序,它们使用相同的核心功能;只是,对该框架所做的是非常不同的。一个服务器应用程序非常容易/简单 - 它已经完成 - 而另一个更复杂。

代码是以依赖注入样式编写的(使用Guice,如果重要的话),因此它应该非常容易分解。

我的问题是:如何使用Maven在Eclipse中构建项目?你会设置三个不同的项目,如:

server-core
server-appEasy
server-appComplicated

每个服务器都有自己的pom。或者,你会把它全部保存在一个项目中吗?我需要能够轻松地重新编译appEasy,比如说,从现在起一个月,我在appComplicated工作。 appEasy的类已经在子包中。注意:如果没有至少一个模拟依赖注入,core本身就无法工作。它没有main类。

所有的想法都得到了赞赏,即使是我没有想过的事情。

4 个答案:

答案 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'工件中的共享工件,我建议如下

  1. 创建Maven项目'server-core'
  2. 添加两个模块项目 名称'server-appEasy'和'server-appComplicated'
  3. 确保模块项目的父项设置为“server-core”
  4. 最后你应该有三个项目(每个项目都有单独的pom.xml),其中
    一个。构建'server-core'也将构建模块
    湾根据需要独立构建“简单”和“复杂”模块也将构建服务器核心。
  5. 希望这有帮助!