如何使maven构建依赖项目

时间:2012-11-02 13:03:01

标签: java maven build dependencies

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

<?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是独立的。

1 个答案:

答案 0 :(得分:6)

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

以下是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网站上免费获取。