2017-05-03 19 views
1

私は "依存関係を持つjar"を作成する必要があるMavenプロジェクト(親プロジェクトのサブモジュール)を持っています。私はmaven-assembly-pluginをpom.xmlに追加しましたが、アーティファクトは作成されませんでした。私はゆっくりとpom.xmlからすべてを取り除きました。残っているのは依存関係とこのプラグインです。依存関係のあるjarファイルはまだ作成されません。 mvn clean packageの出力を見ると、cleancompile、およびjarが実行されますが、assemblyプラグインは実行されません。どうしてか分かりません。ここにpom.xmlがあります。だれでも問題を見つけることができますか?依存関係のあるMavenアセンブリプラグイン - プラグインが実行されていません

<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>project</groupId> 
    <artifactId>project-name</artifactId> 
    <version>1.0</version> 
    <name>project-name</name> 

    <properties> 
     <build.time>${maven.build.timestamp}</build.time> 
     <spring.framework.version>4.3.1.RELEASE</spring.framework.version> 
     <spring.security.version>4.1.1.RELEASE</spring.security.version> 
     <spring.webflow.version>2.4.2.RELEASE</spring.webflow.version> 
     <maven.compiler.source>1.8</maven.compiler.source> 
     <maven.compiler.target>1.8</maven.compiler.target> 
    </properties> 

    <build> 
     <sourceDirectory>${project.basedir}/src/java</sourceDirectory> 
     <resources> 
      <resource> 
       <directory>${project.basedir}/src/resources</directory> 
      </resource> 
     </resources> 
     <outputDirectory>${project.basedir}/target/classes</outputDirectory> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-assembly-plugin</artifactId> 
       <version>3.0.0</version> 
       <configuration> 
        <descriptorRefs> 
         <descriptorRef>jar-with-dependencies</descriptorRef> 
        </descriptorRefs> 
       </configuration> 
      </plugin> 

     </plugins> 
    </build> 

    <dependencies> 
     [snip] 
    </dependencies> 
</project> 
+3

ライフサイクルフェーズに接続する必要があります。 –

+0

それは動作しているようです。ありがとうございました! – user1071914

答えて

1

Maven reference

アセンブリ 記述子からアプリケーションバンドルや分布をアセンブル。この目標は、ライフサイクル へのバインド、またはコマンドラインからの直接呼び出し(ビルドの開始前にすべての必要なファイル が利用可能であるか、またはコマンドラインでこれより前に別のゴール が指定されている場合に適しています)。

asssembly:single目標は2つの方法で使用することができる:ライフサイクル

  • にそれを結合することによって、またはコマンドラインから直接呼び出すことによって

    • いずれか

    あなたは誰もいません。

    あなたは、たとえばそれがpackage相にプラグインの実行をバインドするために行うことができます:

    <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-assembly-plugin</artifactId> 
        <version>3.0.0</version> 
        <configuration> 
         <phase>package</phase> <!-- bind to the packaging phase --> 
         <descriptorRefs> 
          <descriptorRef>jar-with-dependencies</descriptorRef> 
         </descriptorRefs> 
        </configuration> 
    </plugin> 
    

    今すぐmvn packageまたはmvn installコマンドは依存関係を持つjarファイルを作成します。

    実際のプラグインの設定を維持して、mvn assembly:singleコマンドを実行することもできます。

    2番目の方法では、すべてのビルドではなく、オンデマンドで依存関係を持つjarファイルを作成できます。
    jarの作成が各ビルドで実行する必要のない長いタスクである場合は、これが望ましい場合があります。

  • +0

    この単純な情報がMavenプラグインのドキュメントには明示的に現れていないのは間違いですが、2つのセクションを読んでそれらをまとめて推測する必要があります。まぁ。それは無料です。 – user1071914

    関連する問題