2017-12-16 14 views
0

私は、クラス依存関係を含むMaven POM.xmlファイルを持っています。コマンドを使用するmvn clean compile assembly:singleすべての依存関係を持つfat実行可能なjarを作成できます。今私はPOM.xmlの依存関係だけを含む非実行可能なjarファイルを作成でき、コードやクラスは含まれていないのでしょうか?これはまた、maven shade pluginを使用して行うことができ依存関係だけを含むmaven jarパッケージの作成方法

<?xml version="1.0" encoding="UTF-8"?> 
<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>Saprk</groupId> 
    <artifactId>SparkPMUProcessing</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <configuration> 
        <source>1.8</source> 
        <target>1.8</target> 
       </configuration> 
      </plugin> 
      <plugin> 
       <artifactId>maven-assembly-plugin</artifactId> 
       <configuration> 
        <archive> 
         <manifest> 
          <mainClass>SparkStreaming</mainClass> 
         </manifest> 
        </archive> 
        <descriptorRefs> 
         <descriptorRef>jar-with-dependencies</descriptorRef> 
        </descriptorRefs> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 
    <dependencies> 
     <dependency> 
      <groupId>org.apache.spark</groupId> 
      <artifactId>spark-core_2.11</artifactId> 
      <version>2.2.0</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.spark</groupId> 
      <artifactId>spark-streaming_2.11</artifactId> 
      <version>2.2.0</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.spark</groupId> 
      <artifactId>spark-streaming-kafka-0-10_2.11</artifactId> 
      <version>2.2.0</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.hadoop</groupId> 
      <artifactId>hadoop-client</artifactId> 
      <version>2.7.3</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.kafka</groupId> 
      <artifactId>kafka_2.11</artifactId> 
      <version>0.10.0.0</version> 
     </dependency> 
    </dependencies> 
</project> 
+0

あなたのクラス右以外のpom.xmlからのすべての依存関係を含む単一のjarを試してみてください –

+0

@ArvindKatteまさに! – soheil

+0

'/path of jars 'このタグを使用して、 'pom.xml'からjarsを除外することができます。 –

答えて

0

:ここ

POM.xmlコードです。必要なファイルだけをインクルードして除外する設定フィルタ。 Selecting Contents for Uber JAR

+0

リンクが見つかりません! – soheil

+0

リンクを更新しました。 hth – nayakam

0

1つの解決方法は、依存関係のために別のモジュールを作成することです。あなたのルートpom.xml依存関係に続いて、この

<packaging>pom</packaging> 
<modules> 
    <module>core</module> 
    <module>dependencies</module> 
</modules> 

ようモジュールのPOMを見てしまうヨールの依存関係のすべてを定義し、あなたが行うようにmaven-assembly-pluginを使用します。

<dependencies> 
    ... 
</dependencies> 
<build> 
    <plugins> 
     <plugin> 
      <artifactId>maven-assembly-plugin</artifactId> 
      <configuration> 
       <descriptorRefs> 
        <descriptorRef>jar-with-dependencies</descriptorRef> 
       </descriptorRefs> 
       <executions> 
        <execution> 
         <id>make-assembly</id> 
         <phase>package</phase> 
         <goals> 
          <goal>single</goal> 
         </goals> 
        </execution> 
       </executions> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

そして、あなたのメインモジュールの参照にあなたの依存関係をモジュールを依存関係として

関連する問題