2017-04-24 14 views
1

EDIT:正しい関連の質問のために最後の文にmavenは、自動生成されたファイルを監視し、変更されたファイルのみを生成するため、モジュールを再構築しますか?

をスキップ私は、このMavenのコマンドを使用してプロジェクトを構築しています:

-am -DskipTests=true -pl myModule install 

プロジェクトは非常に大きく、モジュールが依存関係をたくさん持っている、と何らかの理由で、彼らが変更されていないにもかかわらず再コンパイルを取得、私は多くのモジュールのために、このメッセージを取得しています :

[INFO] Changes detected - recompiling the module! 

が、これは私のビルドタグは次のとおりです。

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>3.6.1</version> 
      <configuration> 
       <source>1.7</source> 
       <target>1.7</target> 
       <encoding>UTF-8</encoding> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

私が変更と3.5.0

理由が依存するモジュールが認識されますかMavenを使用していますか?

編集:michaldoのアドバイス

を使用して、私は質問が今になっ

、古いソースの多くは自動で を検出し、依存モジュールは、貯蓄から作成された.javaファイルを生成発見:どのように私は、Mavenを指示します/ thrift、変更されていないリフトソースの.javaファイルを生成しない?

+1

1あなたの問題は、mavenコンパイラプラグインが間違ったソース変更を検出し、必要なくモジュールを再コンパイルすることです。厳密にして質問タイトルを更新してください:あなたの問題は一般的なビルド時間ではなく、再コンパイルではありません。 2.不要に再コンパイルされているモジュールを探し、 'mvn compile -X'(またはテストコンパイル)で呼び出します。デバッグメッセージの洪水の中で、どのファイルが変更されたとして検出されているかを調べて、調査を続行します。 – michaldo

+1

こんにちは、私はあなたが今よりずっと成功に近づいているのを見ています。しかし、彼が何をしているかを言わなかった人を助けるのはまだ難しいです:)。 Thrift Maven Pluginを使用する場合は、checkStalenessパラメータを必ず使用してください。 https://github.com/dtrott/maven-thrift-plugin/blob/master/src/main/java/org/apache/thrift/maven/AbstractThriftMojo.java#L174 – michaldo

答えて

0

michaldoのコメントは倹約プラグインからすべての不要なコード生成を解決した後、ビルドは

はるかに高速である、重要なビットが設定にcheckStalenessパラメータを追加することです 、私の問題を解決しました:

  <groupId>org.apache.thrift.tools</groupId> 
      <artifactId>maven-thrift-plugin</artifactId> 
      <configuration> 
       <thriftExecutable>${thrift.exe}</thriftExecutable> 
       *<checkStaleness>true</checkStaleness>* 
      </configuration> 
+0

素晴らしい! SOの実践によれば、答えには、スリフトプラグイン設定の重要な断片が含まれているはずです。他の人があなたの所見を簡単に適用できるようにする – michaldo

関連する問題