Andreas Antwort funktioniert, wenn Sie Eclipse-Projekt von der Befehlszeile mit gradle cleanEclipse eclipse
generieren. Wenn Sie das STS Eclipse Gradle-Plugin verwenden, müssen Sie die Aufgabe afterEclipseImport
implementieren. Unten ist mein voller Arbeits Schnipsel:
project.ext {
genSrcDir = projectDir.absolutePath + '/gen/main/java'
}
compileJava {
options.compilerArgs += ['-s', project.genSrcDir]
}
compileJava.doFirst {
task createGenDir << {
ant.mkdir(dir: project.genSrcDir)
}
createGenDir.execute()
println 'createGenDir DONE'
}
eclipse.classpath.file.whenMerged {
classpath - >
def genSrc = new org.gradle.plugins.ide.eclipse.model.SourceFolder('gen/main/java', null)
classpath.entries.add(genSrc)
}
task afterEclipseImport(description: "Post processing after project generation", group: "IDE") {
doLast {
compileJava.execute()
def classpath = new XmlParser().parse(file(".classpath"))
new Node(classpath, "classpathentry", [kind: 'src', path: 'gen/main/java']);
def writer = new FileWriter(file(".classpath"))
def printer = new XmlNodePrinter(new PrintWriter(writer))
printer.setPreserveWhitespace(true)
printer.print(classpath)
}
}
Haben Sie ein ausführlicheres Beispiel? Ich kann mir zwei mögliche Gründe vorstellen, warum der Quellordner nicht hinzugefügt wurde. 1) der Quellordner ist nicht Teil des Modellgraders Ihrer Quellordner ... oder 2) wenn das Projekt importiert wird, existiert der Ordner noch nicht. Unabhängig davon, ob Sie "1" oder "2" sind, ist möglicherweise eine andere Lösung angebracht. Also, wenn Sie herausfinden könnten, was das ist, würde helfen. Eine Möglichkeit, dies zu versuchen, besteht darin, sicherzustellen, dass Sie den Ordner (auch wenn er leer ist) vor dem Importieren erstellen. Wenn der Ordner jetzt hinzugefügt wird, muss dies am zweiten Grund liegen. – Kris