2013-10-24 23 views
13

削除された要件に関連するパッケージがありますが、将来的に再度必要になる可能性があるため、必ずしもコードを削除する必要はありません。したがって、既存のantビルドでは、このパッケージをjarファイルにコンパイルしないように除外しました。これらのクラスは、依存関係を削除したためにコンパイルされないため、ビルドに含めることはできません。Gradle:特定のパッケージをjarから除外する方法は?

私は次のようにGradleの中でその機能を模倣しようとしてる

jar { 
    sourceSets.main.java.srcDirs = ['src', '../otherprojectdir/src'] 

    include (['com/ourcompany/somepackage/activityadapter/**', 
       ... 
     'com/ourcompany/someotherpackage/**']) 

    exclude(['com/ourcompany/someotherpackage/polling/**']) 
} 

でも上記の呼び出しを除外(と私は同様に角括弧なしでそれを試してみた)で、Gradleのはまだしようとしていますコンパイルエラーの原因となっているpollingクラスをコンパイルします。 Gradleがそのパッケージをコンパイルしようとしないようにするにはどうすればよいですか?

答えて

24

ソースがコンパイルされたくない場合は、ソース用のフィルタを宣言する必要があります.Jarに入れられるクラスファイル用ではありません。以下のような何か:

sourceSets { 
    main { 
     java { 
      include 'com/ourcompany/somepackage/activityadapter/**' 
      include 'com/ourcompany/someotherpackage/**' 
      exclude 'com/ourcompany/someotherpackage/polling/**' 
     } 
    } 
} 
+1

感謝を使用することができます!私はそこに目標を掲げていなかったことを知っていました:) – StormeHawke

+1

@Peterあなたの答えをありがとう。問題は、クラスが新しいバージョンの他の依存関係でも見つかったことです。私は、新しいバージョンを使用して古いバージョンからクラスを除外したい。 – Achaius

22

あなたはこれらのパッケージをコンパイルしたいドント場合は、このソリューションは有効ですが、あなたがそれらをコンパイルしてJARから除外したい場合は、

// tag::jar[] 
jar { 
    exclude('mi/package/excluded/**') 
    exclude('mi/package/excluded2/**') 
} 
// end::jar[] 
+0

私のbuild.gradleファイルにjarを書くことができません。どうすればいいでしょうか? –

関連する問題