/* * Copyright (c) 2006-2017 DMDirc Developers * * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated * documentation files (the "Software"), to deal in the Software without restriction, including without limitation the * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the * Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS * OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ subprojects { apply plugin: 'com.dmdirc.git-version' apply plugin: 'java' apply plugin: 'findbugs' apply plugin: 'pmd' apply plugin: 'idea' apply from: '../gradle/coverage.gradle' idea { module { sourceDirs += file('src/main/generated') testSourceDirs += file('src/test/generated_tests') generatedSourceDirs = [file('src/main/generated'), file('src/test/generated_tests')] } } configurations { provided bundle { extendsFrom provided } compile { extendsFrom bundle } } sourceCompatibility = 1.8 targetCompatibility = 1.8 repositories { mavenCentral() maven { url 'https://artifactory.dmdirc.com/releases' } maven { url 'https://artifactory.dmdirc.com/snapshots' } } dependencies { provided group: 'com.dmdirc', name: 'client', version: '+', changing: true compile group: 'com.google.code.findbugs', name: 'jsr305', version: '3.0.1' compile group: 'com.squareup.dagger', name: 'dagger-compiler', version: '1.2.4' testCompile group: 'junit', name: 'junit', version: '4.12' testCompile group: 'org.mockito', name: 'mockito-core', version: '1.10.19' pmd group: 'net.sourceforge.pmd', name: 'pmd-core', version: '5.4.1' pmd group: 'net.sourceforge.pmd', name: 'pmd-java', version: '5.4.1' } task copyPluginConfig(type: Copy) { from 'plugin.config' into "$buildDir" } task updatePluginConfig(dependsOn: copyPluginConfig) << { def targetFile = new File(buildDir, 'plugin.config') targetFile << "\n\nversion:\n number=${project.version}" targetFile << "\n\nbuildenv:\n" def compileConfiguration = project.configurations.getByName("compile") def resolvedConfiguration = compileConfiguration.resolvedConfiguration def resolvedArtifacts = resolvedConfiguration.resolvedArtifacts resolvedArtifacts.each { dp -> def version = dp.moduleVersion.id targetFile << " " + version.group + " " + version.name + " " + version.version + "\n" } } pmd { ruleSets = [] ruleSetFiles = files("$rootDir/etc/pmd/full.xml") toolVersion = '5.2.3' ignoreFailures = true } pmdMain.doLast { copy { from pmd.reportsDir into "../pmd/" include "*.html" rename "main.html", "${project.name}-main.html" } } tasks.withType(FindBugs) { reports { html.enabled = true xml.enabled = false } } findbugs { reportLevel = 'low' effort = 'max' ignoreFailures = true } jar { from("$buildDir/plugin.config") { into 'META-INF' } from { configurations.bundle.minus(configurations.provided).collect { it.isDirectory() ? it : zipTree(it) } } { exclude 'META-INF/*' } } jar.doLast { copy { from jar.archivePath into "../dist/" rename ".*", "${project.name}.jar" } copy { from jar.archivePath into "../dist-versioned/" rename ".*", "${project.name}-${project.version}.jar" } } jar.outputs.file "../dist/${project.name}.jar" jar.outputs.file "../dist-versioned/${project.name}-${project.version}.jar" jar.dependsOn updatePluginConfig } allprojects { configurations.all { resolutionStrategy.cacheDynamicVersionsFor 2, 'minutes' resolutionStrategy.cacheChangingModulesFor 2, 'minutes' } } buildscript { repositories { mavenCentral() maven { url 'https://artifactory.dmdirc.com/releases' } maven { url 'https://artifactory.dmdirc.com/snapshots' } } dependencies { classpath group: 'com.dmdirc', name: 'git-version', version: '1.0' classpath 'org.kt3k.gradle.plugin:coveralls-gradle-plugin:2.6.3' } } task wrapper(type: Wrapper) { gradleVersion = '3.1' } subprojects.each { evaluationDependsOn it.path } task jars(dependsOn: subprojects*.jar) task tests(dependsOn: subprojects*.test) tasks.dependencies.dependsOn subprojects*.tasks.dependencies def plugin(name) { if (allprojects.find { it.name == name }) { project(name) } else if (allprojects.find { it.name == 'plugins:' + name }) { project('plugins:' + name) } else if (allprojects.find { it.name == 'modules:plugins:' + name }) { project('modules:plugins:' + name) } else { println "Couldn't find project $name" } } apply from: 'gradle/coveralls.gradle'