具有多个源文件夹的eclipse项目的build.gradle

时间:2014-12-29 16:01:17

标签: java eclipse gradle build.gradle gradle-eclipse

我有一个带有源文件夹的eclipse项目,如:

/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

我使用java和eclipse插件创建了一个gradle构建版本,其源代码如下:

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'
}

问题是当我使用gradle eclipse生成eclipse项目时,它正确生成了3个模块源文件夹,一个资源源文件夹,但它也生成了包含所有嵌套源文件夹的超级源文件夹src / main / java包裹如:

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

因此我在eclipse中遇到错误“无法在'$ {projectdir} / src / main / java'中嵌套'$ {projectdir} / src / main / java / module1'。要启用嵌套,请排除'module1 /' '$ {PROJECTDIR} / SRC /主/ JAVA'“

如何修改我的任务/源集以获得正确的项目结构?

1 个答案:

答案 0 :(得分:5)

最后我发现build.gradle很好......我做错了是我正在执行命令gradle eclipse,它只是将条目附加到现有的.classpath文件中,以生成一个新的副本我必须执行生成正确的.classpath文件的gradle cleanEclipseClasspath eclipse