【问题标题】:how to write Maven dependency on sub-module of a package如何在包的子模块上编写 Maven 依赖项
【发布时间】:2012-09-03 17:42:37
【问题描述】:

我刚开始迁移到 Maven,所以目前我没有 pom.xml。我的项目仅依赖于另一个不是我的项目的模块子集。他们在分发的 pom 中列出了模块列表。如何在我的 pom.xml 中声明对特定 jar(可能包含在下载的 jar 中)的依赖关系?

【问题讨论】:

  • 你想分享两个 pom.xml 文件中的一些 sn-ps 并解释你想要实现的目标吗?
  • 我刚开始迁移到 Maven,所以目前我没有 pom.xml。我想在已发布的项目上定义一个依赖项,但只定义它的几个子模块。
  • 你的项目和那个项目有什么关系?该项目是您项目的父项目还是依赖项?

标签: java maven pom.xml


【解决方案1】:

如果您的其他项目使用自己的 pom.xml 组织成子 maven 模块,那么这些子 maven 模块的 <groupId><artifactId><version> 节点将被包含在您的主模块中项目。

例如

project 1
  |- common
       |- pom.xml
          <groupId>com.project1</groupId>
          <artifactId>common</artifactId>
          <version>1.0</version>
  |- util
       |- pom.xml
          <groupId>com.project1</groupId>
          <artifactId>util</artifactId>
          <version>1.0</version>
  |- domain
       |- pom.xml
          <groupId>com.project1</groupId>
          <artifactId>domain</artifactId>
          <version>1.0</version>
  |- service
       |- pom.xml
          <groupId>com.project1</groupId>
          <artifactId>service</artifactId>
          <version>1.0</version>
  |- webapps
       |- pom.xml
          <groupId>com.project1</groupId>
          <artifactId>webapps</artifactId>
          <version>1.0</version>

在项目 2 中,如果您只需要 commonutildomain 以及域模块,那么该项目的 pom.xml 将包含以下依赖项:

<dependencies>

    ...

    <dependency>
          <groupId>com.project1</groupId>
          <artifactId>common</artifactId>
          <version>1.0</version>
    </dependency>
    <dependency>
          <groupId>com.project1</groupId>
          <artifactId>util</artifactId>
          <version>1.0</version>
    </dependency>
    <dependency>
          <groupId>com.project1</groupId>
          <artifactId>domain</artifactId>
          <version>1.0</version>
    </dependency>

    ...

</dependencies>

希望这会有所帮助!

【讨论】:

  • 项目 2 来自其他人,我只看到他们在分发的 pom 中有模块列表。您的答案是否也适用于该设置?
  • 你的意思是项目 1 来自其他人?
  • 如果我理解正确,你的项目是一个包含多个子模块的 maven 项目,你希望其他人只使用他们感兴趣的那些子模块,对吧?
  • 反之亦然,不过看样子,反正也无所谓,等一段时间后我会接受你的解决方案。谢谢!
猜你喜欢
  • 1970-01-01
  • 2013-01-22
  • 2013-08-01
  • 2022-07-14
  • 1970-01-01
  • 2013-08-08
  • 2012-01-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多