2016-05-24 9 views
0

現在、私は巨大なAndroid Studioプロジェクトをコンパイルするようにしています。私の問題は、別のgitリポジトリのJavaクラスに依存していることです。私はサブモジュールとしてレポを追加することでそれを修正しました。アンドロイドスタジオプロジェクトにソースファイルを追加するには?

sourceSets { 

    main.java.srcDirs += '../../ROOT-OF-SOURCE-FILES/' 
} 

これは、依存関係が解決されています。私のアプローチは、.javaファイルがのsourceSetとして設置されているルートを追加することでしたので、私は、Gradleのために絶対的な初心者です。 "ROOT-OF-SOURCE-FILES"には、自分のプロジェクトで必要とされないファイルがたくさんあります。これは、アンドロイドファイルもないので、gradleはビルドされません。 私が頼りにした特定のフォルダをポイントすることですが、次に "ファイルパスがパッケージ名に対応していません"と言います

私の質問はどのように私が必要とするクラスまたは私が必要としないものをどのように除外することができますか(私はgradleで除外を試みましたが、それはうまくいかなかった)。

+0

参照http://stackoverflow.com/a/16709613/192373 –

+0

これは私が必要としないすべてのパッケージを除外しなければならないわけでしょうか?私は約30のうちの1つが必要です。 – Maiq

答えて

0

あなたのソースツリーの部分を無視するexcludeを使用することができ、https://discuss.gradle.org/t/how-can-i-exclude-certain-java-files-from-being-compiled/5287次を参照してください。

sourceSets { 
    main { 
    java { 
     srcDirs 'main/src' 
     exclude '**/package2/**' 
    } 
    } 
} 

別のオプションは、あなたが本当にAndroidのメーカー、例えばのために必要がある1つのブランチへのシンボリックリンクを作成することです

src/main/ 
     package1 
     package3 
     package2 

linked/package1 -> src/main/package1 

sourceSets { 
    main { 
    java { 
     srcDirs 'linked' 
    } 
    } 
} 
+0

範囲外です。私はそれを試してみたところ、除外するパッケージが多すぎることが判明しました。 2番目のオプションを使用してもうまくいきません。なぜなら、srcDirsが本当に必要なファイルがあるフォルダを指していると、「ファイルパスはパッケージ名に対応していません」と表示されるためです。 – Maiq

関連する問題