Skip to content
Snippets Groups Projects
javaproject.gradle 3.59 KiB
Newer Older
  • Learn to ignore specific revisions
  • apply plugin: 'java'
    
    apply plugin: 'project-report'
    
    evaluationDependsOnChildren()
    
    
    task wrapper(type: Wrapper) {
        gradleVersion = '1.5'
        distributionUrl = "http://svncisd.ethz.ch/repos/cisd/ivy-repository/trunk/gradle/distribution/1.5/gradle-1.5-bin.zip"
    }
    
    
    sourceCompatibility='1.6'
    targetCompatibility='1.6'
    
    sourceSets { 
    
        main {
            java {
                srcDirs = ['source/java']
            }
        }
        test {
            java {
                srcDirs = ['sourceTest/java']
            }
            resources {
                srcDirs = ['sourceTest/java']
            }
        }
    
    buildDir = 'targets/gradle'
    
        apply from: '../gradle/repository.gradle'
    
        
        repositories repositoryConfig
        
        dependencies {
            classpath 'cisd:cisd-ant-tasks:+'
    
    repositories repositoryConfig
    
    // Gathering version and revision
    
    def gatheringTask = new ch.systemsx.cisd.ant.task.subversion.GatherRevisionAndVersionTask()
    
    gatheringTask.setProjectNames(project.getAllprojects().collect { it.getName() })
    
    println "project:"+project.name+", all projects:"+gatheringTask.projectNames
    
    def antProject = new org.apache.tools.ant.Project()
    
    antProject.setBaseDir(new File("${project.projectDir}"))
    gatheringTask.setProject(antProject)
    gatheringTask.setVersion("version")
    gatheringTask.setRevision("revision")
    
    gatheringTask.setClean("clean")
    
    gatheringTask.execute()
    
    versionNumber = antProject.getProperty("version")
    revisionNumber = antProject.getProperty("revision")
    cleanFlag = antProject.getProperty("clean")
    
    // set default artifact name
    version=versionNumber+"-r"+revisionNumber
    
    
    // create BUILD INFO file
    def targetsDist = 'targets/dist'
    def distFolder = new File("${project.projectDir}/${targetsDist}")
    distFolder.deleteDir()
    distFolder.mkdirs()
    
    def writer = new FileWriter("${project.projectDir}/${targetsDist}/BUILD-${project.name}.INFO")
    try {
        writer.println("${versionNumber}:${revisionNumber}:${cleanFlag}")
    } finally {
        writer.close()
    }
    
    
    
        useTestNG()
        options.suites('sourceTest/java/tests.xml')    
    
        jvmArgs '-Xmx2048m', '-XX:MaxPermSize=256m'
        
        testLogging.showStandardStreams = true
    
    }
    
    task sourceJar(type: Jar) {
    
        from sourceSets.main.allJava
        classifier "sources"
    
        ecj "eclipse:ecj:3.8.1"
    
        options.encoding = 'utf-8'
        options.fork = true
        doFirst {
            options.forkOptions.with {
                executable = 'java'
                jvmArgs = [ '-cp', configurations.ecj.asPath, 'org.eclipse.jdt.internal.compiler.batch.Main', '-source', '1.6' ]
            }
        }
    
        options.encoding = 'utf-8'
        options.fork = true
        doFirst {
            options.forkOptions.with {
                executable = 'java'
                jvmArgs = [ '-cp', configurations.ecj.asPath, 'org.eclipse.jdt.internal.compiler.batch.Main', '-source', '1.6' ]
            }
        }
    
    processTestResources {
    
        fileMode=0666
    
    configurations.all {
        resolutionStrategy.cacheChangingModulesFor 0, 'hours'
    }
    
    apply plugin: 'eclipse'
    
    eclipse {
    
        classpath {
            downloadSources=true
            defaultOutputDir = file('targets')
        }
    
        whenMerged{ classpath ->
            def projectRefs = classpath.entries.findAll{entry -> entry.kind =='src' && entry.path.startsWith('/')}
            classpath.entries.removeAll(projectRefs)
            classpath.entries.addAll(projectRefs)   
        }   
    
    }
    
    task testJar(type: Jar, dependsOn: testClasses) {
        baseName = "test-${project.archivesBaseName}"
        from sourceSets.test.output
    }
    
    configurations {
        tests  { 
             extendsFrom testRuntime 
         } 
    }
    
    artifacts {
        tests testJar
    }