2016-10-11 20 views
2

私は2つの別個の複雑なビルドタスクを持っています。例えば、戦争ファイル、ライブラリ、そして...
私が知る限り、これらのタスクを別々のmaven pomファイルに分割する必要があります。このアプローチでは、各POMファイルには特定の責任があり、できるだけシンプルに保つことができますし、何らかの技術的な問題の結果として、私はこれを行う必要があります。
私は、これらの2つのファイルの間に共有の依存関係を親のpomファイルに入れて、重複を減らしました。
この場合、create-jar.xmlおよびcreate-war.xmlはタスクであり、parent.xmlには共有依存関係が含まれています。
parent.xmlいくつかのpomファイルを使ってプロジェクトをビルドする

<?xml version="1.0" encoding="UTF-8"?> 
    <project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xmlns="http://maven.apache.org/POM/4.0.0" 
      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>main</groupId> 
     <artifactId>main</artifactId> 
     <version>1.0</version> 
     <packaging>pom</packaging> 

     <dependencies> 
      <dependency> 
       <groupId>org.slf4j</groupId> 
       <artifactId>slf4j-api</artifactId> 
       <version>1.7.13</version> 
      </dependency> 
     </dependencies> 

    </project> 


作成-jar.xmlの

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xmlns="http://maven.apache.org/POM/4.0.0" 
     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> 

    <parent> 
     <artifactId>main</artifactId> 
     <groupId>main</groupId> 
     <version>1.0</version> 
     <relativePath>parent.xml</relativePath> 
    </parent> 
    <groupId>create</groupId> 
    <artifactId>create</artifactId> 
    <version>1.2-SNAPSHOT</version> 
    <packaging>jar</packaging> 
</project> 


作成-war.xml

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xmlns="http://maven.apache.org/POM/4.0.0" 
     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> 

    <parent> 
     <artifactId>main</artifactId> 
     <groupId>main</groupId> 
     <version>1.0</version> 
     <relativePath>parent.xml</relativePath> 
    </parent> 
    <groupId>create-war</groupId> 
    <artifactId>create-war</artifactId> 
    <version>1.1-SNAPSHOT</version> 
    <packaging>jar</packaging> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-war-plugin</artifactId> 
       <version>3.0.0</version> 
       <configuration> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 

</project> 

W私が必要とする帽子は、のmvnに、両方のpomファイルのを1つのコマンドでインストールすることです。創造瓶は戦争前に実行しなければならないので、命令は私にとっては本当に重要です。
2つのアプローチがあります。
継承 create-jar.xmlをcreate-war.xmlの直接の親として使用することによって、create-warを実行することによって、create-jarが呼び出されます。
他の解決策は、create-war.xmlからcreate-jar.xmlを実行することによって、の構成です。どうすればいいのか分かりません。しかし、私はmaven-invokerやmaven-antRunプラグインが参考になると思います。 私は喜んで私に手を差し伸べるでしょう。

+2

あなたはマルチモジュールビルドが必要なのですか – Jens

+0

WARにJARが含まれるかどうかを明確にしてください。シナリオが本当に「JARをビルドしてから、JARを含むWARをビルドする」場合は、おそらくこのシナリオの最初のものではありません。 –

+0

私は ' を作成し、あなたの作成し-war.xmlにメイン ' これを追加しようとするだろう –

答えて

0

このチェックをsample projectにしてください。
基本的には、2つの子供ポムを呼び出す親のポンが必要です。
上記の例はちょっとですが、素人の言葉の各ステップを説明します。

関連する問題