2012-11-02 25 views
5

Mam projekt z kilkoma zależnościami od innego projektu.jak zrobić projekt zależny od budowania 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> 

Wszystkie opracowane przeze mnie symultanicznie. Dodaję edycję do plików całego projektu i muszę zbudować główny projekt razem z projektami zależnymi. Jak to zrobić w przypadku projektów bez struktury drzewa?

Może istnieć 2 lub więcej drzewek pokrywających dla hierarchii projektów, na przykład: A zależy od B, C; D zależy od C, E; A i D są niezależne.

Odpowiedz

6

Możesz budować wiele projektów razem przy użyciu "Modułów". Zwykle można to zrobić, tworząc projekt "matka" z <packaging>pom</packaging> i dodając swój prawdziwy projekt jako moduły przy użyciu znacznika <modules>. Następnie, kiedy budujesz projekt "matka", wszystkie moduły są automatycznie budowane we właściwej kolejności.

Oto przykład z książki 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> 

Zauważ, że wymaga to, aby mieć swoje moduły w podfoldery, które są odpowiednio nazwane. Na przykład, można mieć „matka” pom w jakimś folderze:

/.../my-project/ 

oraz modułów:

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

Aby uzyskać więcej informacji, przeczytaj Chapter 6. A Multi-module Project książki, to swobodnie dostępna na Sonatype stronie internetowej.

+0

Chodzi o to, że moje projekty nie tworzą drzewa, aby umieścić je w podfolderach. Dla hierarchii projektów może istnieć 2 lub więcej drzew okrywających, na przykład: A zależy od B, C; D zależy od C, E; A i D są niezależne. – Vyacheslav

+0

określają te zależności w module pom pom. – Will

+0

@Vyacheslav Tu jest nieporozumienie: system modułowy nie ma nic wspólnego z zależnościami. Twoje projekty mogą mieć dowolne zależności między sobą. Jedyną nowością jest to, że deklarujesz je jako moduły głównego projektu i umieszczasz je w podfolderach obok siebie. – rolve

Powiązane problemy