1

我正在开始一个新项目以及从 Maven 开始。我不确定我的 Maven 项目结构是否不错,所以我想问一下。我用一个小例子来描述这个项目。

项目名称应为 MyPrj。

它由 3 个部分组成(服务器、客户端、库)。

服务器和客户端是程序(主程序),而 lib 确实包含两者都将使用的辅助类(例如用于日志记录)。

我设计了 3 个 maven 项目 - 每个部分 1 个。

MyPrj/
  client/
     pom.xml, src, target, ...
  server/
     pom.xml, src, target, ...
  lib/
     pom.xml, src, target

java包名的部分是

MyPrj.client
MyPrj.server
MyPrj.lib

Maven寻址是

groupId: MyPrj, artifactId: client, version: 0.1
groupId: MyPrj, artifactId: server, version: 0.1
groupId: MyPrj, artifactId: lib, version: 0.1

其中客户端和服务器的 POM 是对 lib 的依赖。

<dependency>
  <groupId>MyPrj</groupId>
  <artifactId>lib</artifactId>
  <version>0.1</version>
</dependency>

对于 Maven 项目,该设置是否正常?

4

1 回答 1

2

您的 Maven 项目看起来不错,但您错过了一件事情:项目。

您的MyPrj项目应该有自己的pom.xml.

MyPrj/
  pom.xml
  client/
     pom.xml, src, target, ...
  server/
     pom.xml, src, target, ...
  lib/
     pom.xml, src, target

在 pom.xml 中MyPrj,您可以声明 Maven 项目的子模块,如下所示:

<project>
  ...

  <modules>
    <module>client</module>
    <module>server</module>
    <module>lib</module>
  </modules>
</project>

多模块 Maven 项目的父项目有很多有趣的特性(依赖管理、存储库、SCM 管理……)。

我建议您查看以下文档:

于 2018-07-31T12:47:11.737 回答