2017-03-15 8 views
7

2つ以上の春のWebプロジェクトを1つの展開可能な戦争ファイルに統合するソリューションを見つけるのを助けてください。私は以下のプロジェクトを持っています複数の春のWebプロジェクトを1つの展開可能な戦争に統合する

myproject 
    a. core 
    - src 
    - pom.xml 
     - packaging = jar 
    b. dao 
    - src 
    - pom.xml 
     - packaging = jar 
     - dependency on core project 
    c. service 
    - src 
    - pom.xml 
     - packaging = jar 
     - dependency on core and dao projects 
    d. salem-web 
    - src 
    - pom.xml 
     - packaging = war 
     - dependency on core, dao and service projects 

これまでのところ良いです。しかし、私たちは、セーラムウェブ& salem-を展開する必要がある

e. service-customer1 - src - pom.xml - packaging = jar - dependency on core and dao projects f. salem-web-customer1 - src - pom.xml - packaging = war - dependency on core, dao and service-customer1 projects 

..私は、新しい要件を持っている別の顧客のために、我々はセーラム-ウェブcustomer1(顧客固有の機能)を持つことができ、セーラム・ウェブcustomer2などweb-customer1
をcustomer1用のパッケージとして、他の顧客用にも同様にします。

私はすでに、mavenオーバーレイと他のスレッドで運がないソリューションを試しました。 2つのWebプロジェクトを1つに統合するための正しい設定(可能な場合)を提案してください。

+0

2つの戦争を展開する上での問題は何ですか? –

+1

デベロッパーとして私は問題ありません:) しかし、その顧客の要件 –

答えて

4

いくつかの可能性がありますが、あなたはこのようにそれを行うことができます:

は親ポンポン持っている:例えば、

<?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/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>com.greg</groupId> 
    <artifactId>salem</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <packaging>pom</packaging> 

    <modules> 
     <module>core</module> 
     <module>dao</module> 
     <module>service</module> 
     <module>service-customer1</module> 
     <module>salem-web</module> 
     <module>salem-web-customer1</module> 
    </modules> 

</project> 

は、各ジャーと戦争プロジェクトの依存関係を持つプロジェクトを持っているの

<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/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>com.greg</groupId> 
    <artifactId>service-customer1</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <packaging>jar</packaging> 

    <name>service-customer1</name> 
    <url>http://maven.apache.org</url> 

    <properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    </properties> 

    <dependencies> 
    <dependency> 
     <groupId>com.greg</groupId> 
     <artifactId>core</artifactId> 
     <version>${project.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>com.greg</groupId> 
     <artifactId>dao</artifactId> 
     <version>${project.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>3.8.1</version> 
     <scope>test</scope> 
    </dependency> 
    </dependencies> 
</project> 

And for a war project: 

<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> 

    <parent> 
     <groupId>com.greg</groupId> 
     <artifactId>salem</artifactId> 
     <version>1.0-SNAPSHOT</version> 
    </parent> 

    <artifactId>salem-web-customer1</artifactId> 
    <packaging>war</packaging> 

    <name>salem-web-customer1 Maven Webapp</name> 
    <url>http://maven.apache.org</url> 

    <dependencies> 
     <dependency> 
      <groupId>com.greg</groupId> 
      <artifactId>core</artifactId> 
      <version>${project.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>com.greg</groupId> 
      <artifactId>dao</artifactId> 
      <version>${project.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>com.greg</groupId> 
      <artifactId>service-customer1</artifactId> 
      <version>${project.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>3.8.1</version> 
      <scope>test</scope> 
     </dependency> 
    </dependencies> 

    <build> 
     <finalName>salem-web-customer1</finalName> 
    </build> 

</project> 

プロジェクト全体をビルドすると、さまざまなターゲットフォルダに必要なすべての戦争が行われます。

./dao/target/dao-1.0-SNAPSHOT.jar 
./salem-web/target/salam-web.war 
./salem-web-customer1/target/salem-web-customer1/WEB-INF/lib/core-1.0-SNAPSHOT.jar 
./salem-web-customer1/target/salem-web-customer1/WEB-INF/lib/dao-1.0-SNAPSHOT.jar 
./salem-web-customer1/target/salem-web-customer1/WEB-INF/lib/service-customer1-1.0-SNAPSHOT.jar 
./salem-web-customer1/target/salem-web-customer1.war 
./service/target/service-1.0-SNAPSHOT.jar 
./service-customer1/target/service-customer1-1.0-SNAPSHOT.jar 
関連する問題