2016-05-08 16 views
0

私はJavaプロジェクトからjarファイルを作成する必要があります。また、依存ファイルのクラスファイルをすべて含む必要はありません。私はまた、Mavenのシェードプラグインを試みたが、結果なしできた私は、すべてのファイルが含まれており、巨大なjarファイルを作成しますmaven-assembly-pluginを使用しましたが、私は唯一のJava Mavenプロジェクトの依存関係を1つだけインポートします

<dependency> 
    <groupId>com.amazonaws</groupId> 
    <artifactId>aws-java-sdk</artifactId> 
    <version>1.10.45</version> 
</dependency> 

が必要:私は何とかすべての依存関係を含め終わりますかすべてを除いて

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-shade-plugin</artifactId> 
    <version>2.4.3</version> 
    <executions> 
     <execution> 
      <phase>package</phase> 
      <goals> 
       <goal>shade</goal> 
      </goals> 
      <configuration> 
       <artifactSet> 
        <excludes> 
         <exclude>org.apache.spark:*</exclude> 
         <exclude>com.google.code.gson:*</exclude> 
         <exclude>edu.stanford.nlp:*</exclude> 
         <exclude>log4j:*</exclude> 
         <exclude>com.optimaize.languagedetector:*</exclude> 
         <exclude>info.debatty:*</exclude> 
        </excludes> 
       </artifactSet> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 
+0

を構築するための

<dependency> <groupId>GROUP_ID</groupId> <artifactId>ARTIFACT_ID</artifactId> <version>VERSION</version> <scope>provided</scope> </dependency> 

と使用のmaven-組立・プラグインあなたはその推移的な依存せずに特定の依存することをしたいですか?それとも? – Tunaki

+0

@Tunakiとの依存関係 – Tomy

答えて

0

最後のjarファイルに含めたくない依存関係のscopeタグに '提供されている'を使用します。瓶

<plugin> 
    <artifactId>maven-assembly-plugin</artifactId> 
    <configuration> 
     <descriptorRefs> 
      <descriptorRef>jar-with-dependencies</descriptorRef> 
     </descriptorRefs> 
     <archive> 
      <manifest> 
       <mainClass>MAIN_CLASS</mainClass> 
      </manifest> 
     </archive> 
    </configuration> 
</plugin> 
+0

それはしませんでした。私はそれが依存関係の範囲を設定するほど簡単ではないと確信しています。 – Tomy

+0

何ですか?これは全く質問に答えません。 '提供された'が何を意味するのか知っていますか?さらに、それは範囲を乱用している。 – Tunaki

+0

@Tomy戻ってきて、実際に試してから責めてください。 –

関連する問題