2016-05-16 5 views
4

私はjarユーティリティを使用してMETA-INFナンセンスせずにjarファイルを作成したい場合は、私は-Mスイッチを渡すことができ、これは以下となります。これは、jarユーティリティの特徴であることmavenにmeta-infフォルダを付けずにjarを作成するには?

​​

注意。私が使用する場合、META-INFフォルダなしでjarファイルを取得し、MANIFESTをインクルードします。基本的には、ファイル/ディレクトリを置いたjar形式のアーカイブだけです。

これをmaven-jar-pluginでどうやって行うのですか?私は別のプロセスに従うためにこれを行う必要があります。 (彼らは非常に特定のファイル/フォルダレイアウトを持つjarファイルを期待しており、jarファイルのルートにMETA-INFフォルダを置くことはできません)

jarファイルを作成するための設定があります。 「tはあなたが所望の効果を達成するためにmaven-shade-pluginを使用することができます...別のプラグインを台無しに

+0

答えがあなたの問題を解決しましたか? – Mifeet

+0

実際には、依存関係が問題になっていたので、解決するために何をやったのか思い出せませんでしたが、ここには何も言及されていませんでした。 – sloven

答えて

4

をしたい:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-shade-plugin</artifactId> 
    <version>2.4.1</version> 
    <executions> 
     <execution> 
      <phase>package</phase> 
      <goals> 
       <goal>shade</goal> 
      </goals> 
      <configuration> 
       <artifactSet> 
        <includes> 
         <include>${project.groupId}:${project.artifactId}</include> 
        </includes> 
       </artifactSet> 
       <filters> 
        <filter> 
         <artifact>*:*</artifact> 
         <excludes> 
          <exclude>META-INF/</exclude> 
         </excludes> 
        </filter> 
       </filters> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

設定がMETA-INFディレクトリをフィルタリングし、依存関係のように、現在のプロジェクトだけを含んでいます付属しません。 maven-jarファイル・プラグインで

6

はマニフェストフォルダの作成を無効にするオプションはありませんが、あなたは、このようなMavenの記述ディレクトリ無効にすることができます。絶対にあなたはMETA-INFフォルダを削除する場合

  <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-jar-plugin</artifactId> 
      <configuration> 
       <archive> 
        <addMavenDescriptor>false</addMavenDescriptor> 
        <manifest> 
         <addClasspath>false</addClasspath> 
        </manifest> 
       </archive> 
      </configuration> 
     </plugin> 

を次のようにmaven-shade-pluginを使用することができます:

 <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-shade-plugin</artifactId> 
      <executions> 
       <execution> 
        <phase>package</phase> 
        <goals> 
         <goal>shade</goal> 
        </goals> 
        <configuration> 
         <filters> 
          <filter> 
           <artifact>*:*</artifact> 
           <excludes> 
            <exclude>META-INF/</exclude> 
           </excludes> 
          </filter> 
         </filters> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 
+0

これは影付きのjarファイルに依存関係を含めるという副作用があります。 – Mifeet

+1

いくつかのユーザが提案しています:依存関係を含む副作用を解決するには、単に ''を提供して宣言してください。正しいのは@svermeilleです... – GhostCat

関連する問題