import java.nio.file.Paths import java.time.Instant /* * Copyright 2018 dorkbox, llc * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ buildscript { // load properties from custom location def propsFile = Paths.get("${projectDir}/../../gradle.properties").toAbsolutePath().normalize().toFile() println("Loading custom property data from: ${propsFile}") def props = new Properties() propsFile.withInputStream {props.load(it)} props.each {key, val -> project.ext.set(key, val)} // for plugin publishing repositories { maven { url "https://plugins.gradle.org/m2/" } } dependencies { classpath "com.gradle.publish:plugin-publish-plugin:0.9.10" } } plugins { id 'java' id 'java-gradle-plugin' id "org.jetbrains.kotlin.jvm" version "1.2.60" } // for publishing the plugin to gradle apply plugin: "com.gradle.plugin-publish" project.description = 'License definitions and legal management plugin for the Gradle build system' project.group = 'com.dorkbox' project.version = '1.2.1' project.ext.name = 'Gradle Licensing Plugin' project.ext.id = 'Licensing' project.ext.url = 'https://git.dorkbox.com/dorkbox/Licensing' project.ext.tags = ['licensing', 'legal', 'notice', 'license', 'dependencies'] sourceSets { main { java { setSrcDirs Collections.singletonList('src') } resources { setSrcDirs Collections.singletonList('resources') srcDirs '.' include 'LICENSE*' } } } repositories { jcenter() } dependencies { compileOnly 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.2.60' } tasks.withType(JavaCompile) { options.encoding = 'UTF-8' options.incremental = true } tasks.withType(Jar) { duplicatesStrategy DuplicatesStrategy.FAIL manifest { attributes['Implementation-Version'] = project.version attributes['Build-Date'] = Instant.now().toString() } } /////////////////////////////// ////// Plugin Publishing + Release /////////////////////////////// gradlePlugin { plugins { licensing { id = "${project.group}.${project.ext.id}" implementationClass = 'dorkbox.license.LicensePlugin' } } } pluginBundle { website = project.ext.url vcsUrl = project.ext.url plugins { licensing { id = "${project.group}.${project.ext.id}" displayName = project.ext.name description = project.description tags = project.ext.tags version = project.version } } }