【问题标题】:how to make maven build dependent project如何使maven构建依赖项目
【发布时间】:2023-03-13 19:59:01
【问题描述】:

我有几个依赖于其他项目的项目。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>group1</groupId>
<artifactId>artifact1<artifactId>
<name>RealtyRegistry</name>
<packaging>war</packaging>
<version>1.0.0-SNAPSHOT</version>
<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
    <dependency>
        <groupId>group1</groupId>
        <artifactId>artifact2</artifactId>
        <version>1.0.0</version>
    </dependency>
    <dependency>
        <groupId>group1</groupId>
        <artifactId>artifact3</artifactId>
        <version>1.0.0</version>
    </dependency>
</dependencies>

所有这些都是我同时开发的。我将版本添加到所有项目的文件中,我需要与依赖项目一起构建主项目。没有树形结构的项目怎么做?

项目层次结构可以有 2 个或更多覆盖树,例如:A 依赖于 B、C; D取决于C,E; A 和 D 是独立的。

【问题讨论】:

    标签: java maven build dependencies


    【解决方案1】:

    您可以使用“模块”一起构建多个项目。通常,您可以通过使用&lt;packaging&gt;pom&lt;/packaging&gt; 创建一个“母亲”项目并使用&lt;modules&gt; 标记将您的真实项目添加为模块来实现。然后,当您构建“母亲”项目时,所有模块都会以正确的顺序自动构建。

    这是Maven by Example 书中的一个示例:

    <groupId>org.sonatype.mavenbook.multi</groupId>
    <artifactId>simple-parent</artifactId>
    <version>1.0</version>
    <packaging>pom</packaging>
    
    <modules>
        <module>simple-weather</module>
        <module>simple-webapp</module>
    </modules>
    

    请注意,这要求您将模块放在相应命名的子文件夹中。例如,您将在某个文件夹中有“母亲”pom:

    /.../my-project/
    

    以及以下模块:

    /.../my-project/simple-weather/
    /.../my-project/simple-webapp/
    

    欲了解更多信息,请阅读本书的Chapter 6. A Multi-module Project,它可在 Sonatype 网站上免费获取。

    【讨论】:

    • 问题是我的 maven 项目没有形成一棵树来将它们放在子文件夹中。项目层次结构可以有 2 个或更多覆盖树,例如:A 依赖于 B、C; D取决于C,E; A 和 D 是独立的。
    • 在依赖的模块 pom 中指定这些依赖项。
    • @Vyacheslav 这里有个误区:模块系统与依赖无关。您的项目之间可能存在任意依赖关系。唯一的新功能是您将它们声明为主项目的模块并将它们放在彼此相邻的子文件夹中。
    • 好的。但我需要:A 来建造 B,C; D 建造 C、E。那么如何对它们进行子文件夹呢?
    • 看。创建父文件夹:.../my-project/。在那里,将父 pom 文件与上面的模块部分放在一起。另外,创建 5 个子文件夹:.../my-project/A、.../my-project/B、.../my-project/C、.../my-project/D 和 .../my-project/E 并将您的项目放在那里。每个项目都需要像往常一样声明其依赖项。如果这已经有效,您无需更改任何内容。现在您所要做的就是构建父项目,Maven 会找出构建它们的顺序。
    猜你喜欢
    • 2012-08-20
    • 1970-01-01
    • 2022-11-27
    • 2017-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多