【问题标题】:Maven: project setupMaven:项目设置
【发布时间】:2019-01-03 00:55:14
【问题描述】:

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

项目名称应为 MyPrj。

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

服务器和客户端是程序(主程序),而 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 项目,这种设置是否正常?

【问题讨论】:

    标签: java maven mvn-repo


    【解决方案1】:

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

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

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

    MyPrj的pom.xml中,你可以声明你的Maven项目的submodules如下:

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

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

    我建议您查看以下文档:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-01
      • 1970-01-01
      • 2010-11-01
      • 1970-01-01
      • 2021-06-09
      相关资源
      最近更新 更多