2016-11-08 10 views
1

私は、gradleのプラグインを作成して、Androidプロジェクトのいくつかのクラスを生成しています。gradleプラグインからアンドロイドプロジェクトソースセットにフォルダを追加する方法

これらのクラスは、実際のソースコードと混同されたくないので、プロジェクトのsrc/gen/javaフォルダに生成します。プロジェクトのbuild.gradle設定から

、私は、ビルドツールが生成されたクラスを参照するために、これを追加することができます。

android { 
    sourceSets { 
     main { 
      java { 
       srcDir 'src/gen/java' 
      } 
     } 
    } 
} 

問題は、私は私のプラグインが自動的にこれを設定したいということです。私のプラグインから私は以下試してみました:

パブリッククラスMyPluginは、プラグインを実装する{

@Override 
public void apply(Project project) { 
    // ... 
    // TEST 1 : doesnt work 
    project.android.sourceSets.main.java.srcDirs += "src/gen/java" 

    // TEST 2 : doesnt work 
    project.android.sourceSets { 
     main { 
      java { 
       srcDir 'src/gen/java' 
      } 
     } 
    } 
} 

}

たびにプラグインが動作しますが、フォルダはまだコンパイラによって見られておらず、それができます」コンパイル時に生成されたクラスを見つける。プラグインからこれを行う別の方法を知っていますか?

答えて

2

ファイルをアプリモジュールのbuild/generated/sourcesディレクトリに移動すると、プラグインは現在コードを生成しています。ソースコードに追加する必要はありません。

あなたはまた、コード生成やAutoValueをするのGradleプラグインもあるSQLDelightで見ることができる

編集:また、ソースを生成しますBuildVariantにregisterJavaGeneratingTaskを呼び出す必要が

関連する問題