एंड्रियास का जवाब काम करता है यदि आप gradle cleanEclipse eclipse
का उपयोग कर कमांड लाइन से एक्लिप्स परियोजना उत्पन्न करते हैं। यदि आप एसटीएस ग्रहण ग्रैडल प्लगइन का उपयोग करते हैं, तो आपको afterEclipseImport
कार्य को लागू करना होगा।
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)
}
}
क्या आपके पास एक विस्तृत विस्तृत उदाहरण है? मैं दो संभावित कारणों के बारे में सोच सकता हूं कि स्रोत फ़ोल्डर क्यों नहीं जोड़ा गया है। 1) स्रोत फ़ोल्डर मॉडल स्रोत का हिस्सा नहीं है आपके स्रोत फ़ोल्डरों का है ... या 2) जब प्रोजेक्ट आयात किया जाता है, तो फ़ोल्डर अभी तक मौजूद नहीं है। चाहे आप '1' या '2' मामले में हैं, एक अलग समाधान क्रम में हो सकता है। तो अगर आप यह निर्धारित कर सकते हैं कि यह कौन सा है जो मदद करेगा। इसका प्रयास करने का एक तरीका यह सुनिश्चित करना है कि आप आयात करने से पहले फ़ोल्डर बना लें (भले ही यह खाली हो)। अगर फ़ोल्डर अब जोड़ा जा रहा है, तो यह दूसरे कारण के कारण होना चाहिए। – Kris