2012-11-02 201 views
5

我有項目與其他項目的幾個依賴項。如何使maven構建依賴項目

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

回答

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的免費提供網站。

+0

事情是我的maven項目不形成一個樹,把它們放在子文件夾中。可以有2個或更多的項目層次覆蓋樹,例如:A取決於B,C; D取決於C,E; A和D是獨立的。 – Vyacheslav

+0

在從屬模塊pom中指定這些依賴關係。 – Will

+0

@Vyacheslav這裏有一個誤解:模塊系統與依賴關係無關。你的項目之間可能有任意的依賴關係。唯一的新東西是,你將它們聲明爲主項目的模塊,並將它們放在子文件夾中並排放置。 – rolve

相關問題