1

我对 Maven 还很陌生,我终于拥有了我想要的,但现在我需要重新打破它。

这是我的场景:

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

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

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

server-core
server-appEasy
server-appComplicated

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

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

4

4 回答 4

1

我会有这样的结构:

/server
    /server-core
        pom.xml
    /server-appeasy
        pom.xml
    /server-appcomplicated
        pom.xml
    pom.xml

因此,每个项目都有自己的 pom.xml,允许您单独构建该项目。

但是,父文件夹也有一个 pom.xml,如果运行,它将构建所有项目。您可以通过将项目作为模块包含在父 pom.xml 中来做到这一点。

例如在父 pom.xml

<modules>
    <module>server-core</module>
    <module>server-appeasy</module>
    <module>server-appcomplicated</module>
</modules>

您还可以在父 pom tio 中使用托管依赖项,允许您集中外部依赖项和插件版本号。

于 2013-02-08T15:35:12.993 回答
1

我建议将所有内容构建为 Maven 多模块项目。

父项目将三个项目作为模块、第 3 方依赖版本以及作为属性的项目版本。

然后,在 server-appComplicated 和 server-appEasy 中,我将向 server-core 添加一个依赖项。

通过这种方式,您将获得: 1- 一个要编译的根项目(父项目),它将生成两个服务器和核心库。2-处理版本号和常见依赖项的点。

我希望它有帮助

于 2013-02-08T15:38:41.690 回答
0

我不是专家,但这是我的 2 美分。每个项目都需要自己的 pom。您需要一起构建所有项目吗?在这种情况下,拥有一个具有所有常见依赖项的父 pom 可能是有意义的。

编辑:在那种情况下,我觉得每个项目只有三个独立的 3 个 pom 文件。

于 2013-02-08T15:24:50.423 回答
0

有多种方法可以做到这一点,具体取决于您在部署时的需要。假设 'server-core' 是您的 'server-appEasy' 和 'server-appComplicated' 工件之间的共享工件,我建议如下

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

希望这可以帮助!

于 2013-02-08T15:35:07.843 回答