Intellij idea中gradle设置多源文件目录

问题描述

Intellij idea开发工具来开发Java工程的时候,通常会使用ant、maven、groovy、gradle等工具来管理项目依赖。我在工程中使用了较新的gradle作为管理工具。但是在运行build.gradle的build任务时,通常需要将多个目录设置为源代码文件目录。否则一旦build完了以后,某些目录中的源代码会被忽视,而认为不是源代码。

比如说如下图所示:
Intellij idea中gradle设置多源文件目录_第1张图片

  • 该图中wsdc-api未被mark为源文件目录,因此该目录下所有java文件都未被识别为java源代码,因此这些代码文件左下角出现了红色的 “J”.

目标

Intellij idea中gradle设置多源文件目录_第2张图片

  • src/main/java 为默认的源文件目录
  • src/main/thrift 也希望成为gradle可识别的源文件目录
  • src/main/thrift-java 也希望成为gradle可识别的源文件目录

    解决方案

// # build.gradle #
buildscript {
    repositories {
        maven {
            url "http://repo.maven.apache.org/maven2/"
        }
        mavenCentral()
    }

    dependencies {
        classpath group: 'co.tomlee.gradle.plugins', name: 'gradle-thrift-plugin', version: '0.0.6'
        classpath("org.springframework.boot:spring-boot-gradle-plugin:1.1.10.RELEASE")
    }
}

apply plugin: 'java'
apply plugin: 'idea'
apply plugin: 'thrift'
apply plugin: 'spring-boot'
apply plugin: 'war'

sourceCompatibility = 1.7

version = '1.0'

repositories {
    mavenCentral()
}

dependencies {
    compile 'org.apache.thrift:libthrift:0.9.2'
    compile 'org.springframework:spring-orm:4.1.4.RELEASE'
    compile('org.springframework.boot:spring-boot-starter-web:1.2.1.RELEASE')
    compile('org.springframework.boot:spring-boot-starter-data-jpa:1.2.2.RELEASE')
    //compile('org.springframework.boot:spring-boot-starter-actuator:1.2.2.RELEASE')
    compile('org.springframework:spring-jdbc:4.1.5.RELEASE')
    //compile('com.h2database:h2:1.4.185')

    // mysql
    compile('mysql:mysql-connector-java:5.1.34')
    // hibernate
    compile('org.hibernate:hibernate-entitymanager:4.3.8.Final')

    compile('org.projectreactor.spring:reactor-spring-context:1.1.3.RELEASE')
    compile('org.springframework:spring-web:4.1.5.RELEASE')

    compile('org.springframework.amqp:spring-rabbit:1.4.2.RELEASE')
    compile('org.springframework.amqp:spring-amqp:1.4.2.RELEASE')
    compile group: 'org.springframework.data', name: 'spring-data-mongodb', version: '1.6.1.RELEASE'

    compile "org.springframework.data:spring-data-rest-webmvc:2.2.1.RELEASE"
    compile("com.fasterxml.jackson.core:jackson-databind:2.5.0")
    compile("com.fasterxml.jackson.core:jackson-annotations:2.5.0")
    compile("com.fasterxml.jackson.core:jackson-core:2.5.0")
    //compile group: 'org.hibernate', name: 'hibernate-core', version: '4.3.7.Final'

    compile('org.springframework:spring-test:4.1.5.RELEASE')

    testCompile group: 'junit', name: 'junit', version: '4.11'
}


generateThriftSource {
    //
    // The output directory (optional)
    //
    out file('src/main/thrift-java')

    verbose false
    debug false
    strict true

    //
    // Modify the include path (optional)
    //
    // path file('vendor/thrift')

    //
    // Set the thrift executable (optional)
    //
    executable 'C:\\Program Files (x86)\\Java\\jdk1.7.0_40\\bin\\thrift.exe'

    generators {
        //
        // --gen java:hashcode,beans
        //
        java {
            //
            // Options passed to the `java` generator
            //
            option 'hashcode'
            option 'beans'
        }

    }
}

// here demonstrates how to add multiple srcDirs into project
sourceSets {
    main {
        java {
            srcDirs = ['src/main/java', 'src/main/thrift-java']
        }
        resources {
            srcDirs = ['src/main/resources']
        }
    }
    test {
        java {
            srcDirs = ['src/test/java', 'src/test/thrift']
        }
        resources {
            srcDirs = ['src/test/resources']
        }
    }
}

jar {
    // set the main class entry for the executable jar
    manifest {
        attributes 'Main-Class': 'calculator.CalculatorClient',
                'Implementation-Title': 'Gradle quickStart'
    }

    // this will add all the dependent jars into the generated-jar package
    from {
        configurations.compile.collect {
            it.isDirectory() ? it : zipTree(it)
        }
    }
}

你可能感兴趣的:(编程语言,Java,gradle,intellij-idea)