私は注釈処理を使用しています。したがって、私は apt plugin を使用します。新しいJavaソースをbuild/source/apt
に生成します。
これが私のbuild.gradleです:
apply plugin: 'Java'
apply plugin: 'Eclipse'
apply plugin: 'apt'
apply plugin: 'war'
apply plugin: 'gwt'
apply plugin: 'jetty'
sourceCompatibility = 1.7
version = '1.0'
Eclipse {
classpath {
downloadSources=true
downloadJavadoc=true
}
}
buildscript {
repositories {
mavenCentral()
jcenter()
maven {
url "https://oss.sonatype.org/content/repositories/snapshots/"
}
}
dependencies {
classpath 'de.richsource.gradle.plugins:gwt-gradle-plugin:0.6'
classpath 'com.jimdo.gradle:gradle-apt-plugin:0.5-SNAPSHOT'
}
}
repositories {
mavenCentral()
maven {
name = "sonatype"
url = "https://oss.sonatype.org/content/repositories/snapshots/"
}
}
dependencies {
apt 'com.google.dagger:dagger-compiler:2.0-SNAPSHOT:jar-with-dependencies'
compile 'com.google.guava:guava:18.0'
compile 'com.google.guava:guava-gwt:18.0'
compile 'javax.inject:javax.inject:1'
compile 'com.google.dagger:dagger:2.0-SNAPSHOT'
}
gwt {
gwtVersion='2.7.0'
logLevel = 'INFO'
minHeapSize = "512M";
maxHeapSize = "1024M";
compiler {
strict = true;
}
modules 'test.GWTT'
}
tasks.withType(de.richsource.gradle.plugins.gwt.AbstractGwtActionTask) {
args '-XjsInteropMode', 'JS'
}
このソースをプロジェクトで使用できるようにして、Eclipseがソースを見つけて、プロジェクトのコンパイル時に含まれるようにして、どうすればよいですか?
編集:使用
sourceSets {
apt{
Java{
srcDir 'build/source/apt'
}
}
}
gradle build
を実行すると、次のエラーが発生します。
Compiling module test.GWTT
Tracing compile failure path for type 'test.client.GWTT'
[ERROR] Errors in 'file:/Users/mg/Documents/Grails/GGTS3.6.2/TestGradle2/src/main/Java/test/client/GWTT.Java'
[ERROR] Line 17: No source code is available for type test.client.test2.Dagger_MyWidgetGinjector; did you forget to inherit a required module?
Finding entry point classes
Tracing compile failure path for type 'test.client.GWTT'
[ERROR] Errors in 'file:/Users/mg/Documents/Grails/GGTS3.6.2/TestGradle2/src/main/Java/test/client/GWTT.Java'
[ERROR] Line 17: No source code is available for type test.client.test2.Dagger_MyWidgetGinjector; did you forget to inherit a required module?
[ERROR] Hint: Check the inheritance chain from your module; it may not be inheriting a required module or a module may not be adding its source path entries properly
:compileGwt FAILED
以前のEclipseを使用すると、生成されたファイルのソースが検出されますが、ビルドは検出されません。
sourceSets.main.Java.srcDirs = ['build/generated-sources/xjc','src/main/Java']
は私のために働きました。
あなたが置くことができるjarプラグインを備えたダガー2の場合
sourceSets.main.Java.srcDirs = ['build/generated/source/apt/main','src/main/Java']
build.gradle
他の人が答えたものが私の元のディレクトリを上書きするので、私は回避策を見つけました-元のディレクトリリストを上書きしたくない場合は、次のようにすることができます。
sourceSets.main.Java.srcDirs += myDir
sourceSets.main.kotlin.srcDirs += myDir
重要なのは、+=
ここに。基本的には次のように述べるのと同じです。
sourceSets {
main {
Java.srcDirs += myDir
kotlin.srcDirs += myDir
}
}
出力クラスのカスタムソースセットを定義してみてください。何かのようなもの:
sourceSets {
apt{
Java{
srcDir 'build/source/apt'
}
}
}
あなたを近づける必要があります。詳細については、 Java gradle plugin docs のソースセットセクション(23.7)を参照してください。
このようなコード構造を検討してください
src
├───main
│ ├───gen
│ │ └───com
│ │ └───Java
│ │ └───generated
│ │ └───code
│ ├───Java
│ │ └───com
│ │ └───Java
│ │ └───test
│ └───resources
│ ├───icons
│ └───META-INF
└───test
├───Java
└───resources
src/main/gen-生成されたコードのフォルダー
src/main/Java-手動コード用のフォルダー
(生成されたものと手動の両方を含めるには、Javaコード)Javaコンパイル(build.gradleファイル内)の入力ディレクトリとして両方を指定する必要があります)-私はファイルの最後に追加します。
sourceSets {
main {
Java {
srcDirs = ['src/Java', 'src/gen']
}
}
}
必要な数のソースを指定できます。これが少し役立ち、説明することを願っています