2011-12-19 9 views
0

私はuber jarを作成する必要がある典型的な問題にぶち当たっていますが、私のプロジェクトの依存関係には複数のspring.handlersとspring.schemasファイルがあります。私は周りを検索し、私の問題は、それがAppendingTransformerと一緒にmaven-shadeのプラグインを使用する必要があることを理解しました。問題は、設定を追加して目標を実行すると、ファイルをマージしないということです。さらに、私はアペンダーやリソースファイルのために偽のクラスパスを置くことができ、それは不平を言っていない、それは私がトランスを実行しようとしていないと信じさせる。maven-shadeプラグインのAppenderTransformerの使い方

execute- MVNパッケージシェードをコンパイル:日陰

<build> 
    <finalName>mongo-dictionary</finalName> 
    <resources> 
     <resource> 
      <directory>src/main/resources</directory> 
      <filtering>true</filtering> 
     </resource> 
    </resources> 
    <pluginManagement> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-surefire-plugin</artifactId> 
       <version>2.7.2</version> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-shade-plugin</artifactId> 
       <version>1.5</version> 
       <executions> 
        <execution> 
         <phase>package</phase> 
         <goals> 
          <goal>shade</goal> 
         </goals> 
         <configuration> 
          <transformers> 
           <transformer 
            implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"> 
           </transformer> 
           <transformer 
            implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"> 
            <resource>META-INF/spring.schemas</resource> 
           </transformer> 
          </transformers> 
         </configuration> 
        </execution> 
       </executions> 
      </plugin> 
     </plugins> 
    </pluginManagement> 
</build> 

答えて

-1

このプラグインの設定は、それが正しい場所にあることを確認することができ、ある - ビルド - あなたはユーバーを作成しているため、プロジェクトの>プラグインの要素瓶。私は私のために働く同じ構成を持っています。

また、シェード:シェードを別途実行する必要はありません。 mvnパッケージを実行すると、それが実行されます。

+0

ここにpom.xmlのビルド部分全体があります。 –

+0

ビルドセクション全体を追加しました。私がプラグインを削除したら、私はプラグインがpluginManagement要素の子として構成されていることを確認してください。 –

+0

正しい方向に私を指摘してくれてありがとう –

1

プラグインをpluginManagement要素の子として構成しましたが、pluginManagementタグを取り除くと、すべて広告として機能します。

+0

これは受け入れられた答えでなければなりません - 変更されたもの(可能な場合)を示す実例を追加してください。 – studro

関連する問題