2016-05-19 10 views
0

シンプルなmavenプロジェクトを作成して影付きのjarファイルを作成しました。私はmvnクリーンコンパイルを使用してそれを構築しました。それはjarファイルを作成しますが、それを私は私のプロジェクトのJavaソースファイルに対応する.classファイルが表示されません。私はビルド時にはっきりとメッセージの下に表示されますが、ターゲットディレクトリの下に.classファイルは表示されません。IntelliJのmavenターゲットディレクトリの下にクラスファイルが作成されていません

[INFO] ---のmaven-コンパイラプラグイン:3.1:コンパイル(デフォルトコンパイル)@ PersonalizationFeeder ---

は[INFO]の変更が検出された - モジュールを再コンパイル!

[警告]ファイルエンコーディングは、プラットフォームエンコーディングUTF-8を使用して設定されていません。つまり、プラットフォームに依存します。

[INFO] 10個のソースファイルをDocuments/PersonalizationFeeder/target/classesにコンパイルする [INFO] --------------------------- ---------------------------------------------

[情報] BUILD成功

ここで問題は何ですか?私のpom.xmlはこのように見えます。

<?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"> 
<parent> 
    <artifactId>data-analytics</artifactId> 
    <groupId>com.wooplr</groupId> 
    <version>0.0.1</version> 
</parent> 
<modelVersion>4.0.0</modelVersion> 

<artifactId>PersonalizationFeeder</artifactId> 
<packaging>jar</packaging> 
<properties> 
    <userlib.dir>Documents/userlibs</userlib.dir> 
</properties> 

<dependencies> 
    <dependency> 
     <groupId>org.apache.spark</groupId> 
     <artifactId>spark-core_2.10</artifactId> 
     <version>${spark.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.spark</groupId> 
     <artifactId>spark-streaming-kafka_2.10</artifactId> 
     <version>${spark.version}</version> 
    </dependency>   
    <dependency> 
     <groupId>com.wooplr</groupId> 
     <artifactId>jedis</artifactId> 
     <version>1.0</version> 
     <scope>system</scope> 
     <systemPath>${userlib.dir}/jedis-2.7.3.jar</systemPath> 
    </dependency> 
</dependencies> 

<build> 
<sourceDirectory>src/main/java</sourceDirectory> 
<plugins> 
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-compiler-plugin</artifactId> 
     <version>3.1</version> 
     <configuration> 
      <source>1.7</source> 
      <target>1.7</target> 
     </configuration> 
    </plugin> 
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-shade-plugin</artifactId> 
     <version>2.2</version> 
     <executions> 
      <execution> 
       <phase>package</phase> 
       <goals> 
        <goal>shade</goal> 
       </goals> 
       <configuration> 
        <artifactSet> 
         <excludes> 
          <exclude>junit:junit</exclude> 

          <exclude>org.apache.maven:lib:tests</exclude> 
         </excludes> 
        </artifactSet> 
        <filters> 
         <filter> 
          <!--<artifact>*:*</artifact>--> 
          <excludes> 
           <excludeScope>system</excludeScope> 
           <exclude>META-INF/*.SF</exclude> 
           <exclude>META-INF/*.DSA</exclude> 
           <exclude>META-INF/*.RSA</exclude> 
          </excludes> 
         </filter> 
        </filters> 
       </configuration> 
      </execution> 
     </executions> 
    </plugin> 
</plugins> 

+0

'Documents/PersonalizationFeeder/target/classes'には何がありますか?あなたが期待していることは明確ではなく、IntelliJはこれで何をしていますか? –

+0

なぜJavaソースファイル( ' src/main/java')の位置を明示的に設定しましたか?それは必要ではありません。 'maven-shade-plugin'を削除すると、どのようにしてjarファイルが見えますか? – uniknow

+0

@RC:Documents/PersonalizationFeeder/target/classesディレクトリが空です。私のソースファイルの.classファイルを正しく作成する必要がありますか?私が期待しているのは、影付きのjarファイル(一度作成されると)には、自分のソースファイルの.classファイルが入っているはずです。しかし、私はそれらを見ません。私はここで間違ったことをしていますか? – user553182

答えて

0

問題は解決... !!依存関係のjarの1つでは、ライセンスされたjarがあり、そのために適切に構築できませんでした。この問題を解決するには、特定の依存関係jarを抽出し、META-INF/dirから.RSA、.DSA、* .SFファイルを削除し、jar -cfコマンドを使用してjarファイルを作成し、この新しいjarファイルを依存ファイルとして使用する必要がありました。それは私のためにうまくいった。皆さんありがとう。

関連する問題