2014-12-29 68 views
4

我有像源文件夹一个Eclipse项目Eclipse项目:的build.gradle与多个源文件夹

/src/main/java/module1 
/src/main/java/module2 
/src/main/java/module3 

这些SRC文件夹,我有喜欢的包里面:

com.example.module1.xxx 
com.example.module2.yyy 
com.example.module3.zzz 

我已经做了gradle使用java和eclipse插件的源代码组合:

apply plugin: 'java' 
apply plugin: 'eclipse' 
sourceSets { 
    main { 
     java { 
      srcDirs = ['src/main/java/module1'] 
      srcDir 'src/main/resources' 
      srcDir 'src/main/java/module2' 
      srcDir 'src/main/java/module3' 
     } 
    } 
} 
jar{ 
    manifest { 
     attributes 'Implementation-Title': 'Example Project', 
        'Implementation-Version': '1.0.0'  
    } 
} 

repositories { 
    mavenCentral() 
} 
dependencies{ 
    compile group: 'com.zaxxer', name: 'HikariCP', version: '2.2.5' 
    compile group: 'org.apache.logging.log4j', name: 'log4j-api', version: log4j2Version 
    compile group: 'org.apache.logging.log4j', name: 'log4j-core', version: log4j2Version 
    compile group: 'org.apache.logging.log4j', name: 'log4j-slf4j-impl', version: log4j2Version 
    compile group: 'org.apache.logging.log4j', name: 'log4j-jul', version: log4j2Version 
    compile group: 'org.apache.logging.log4j', name: 'log4j-jcl', version: log4j2Version 
    compile group: 'org.slf4j', name: 'slf4j-api', version: '1.7.9' 
} 

问题是当我生成

module1.com.exaple.module1.xxx 
module2.com.exaple.module2.yyy 
module3.com.exaple.module3.zzz 

因此我得到:使用gradle eclipse它正确地生成3模块源的文件夹,一个资源源文件夹,但它也与包生成具有所有嵌套源文件夹中的超级源文件夹的src /主/ JAVA如Eclipse项目eclipse中的错误“无法在'$ {projectdir}/src/main/java'中嵌套'$ {projectdir}/src/main/java/module1'。要启用嵌套排除“模块1 /”从'$ {PROJECTDIR}/src目录/主/ Java的”

如何修改我的任务/ sourcesets得到正确的项目结构?

+1

'srcDir'src/main/resources''应该被移除。它不是Java源代码目录,而是'sourceSets.main.resources.srcDirs'的默认值,在生成Eclipse项目时会考虑到文件。 –

+0

@PeterNiederwieser你是对的......谢谢 – gladiator

回答

4

嗯终于想通了build.gradle是好的...我做错了什么是我正在执行命令gradle eclipse这只是将条目附加到现有的.classpath文件,要生成一个新的副本,我必须执行gradle cleanEclipseClasspath eclipse哪些产生正确的.classpath文件。

+1

甚至执行'''gradle cleanEclipse eclipse'''来纯粹使用Gradle生成eclipse文物。 –