import java.text.SimpleDateFormat plugins { id 'java' id 'idea' } group 'de.griefed' //noinspection GroovyUnusedAssignment sourceCompatibility = targetCompatibility = '1.8' sourceSets { //noinspection GroovyAssignabilityCheck main { java { srcDirs = ['src/main/java'] } //noinspection GroovyAssignabilityCheck resources { srcDirs = ['src/main/resources'] } } test { java { srcDirs = ['src/test/java'] } //noinspection GroovyAssignabilityCheck resources { srcDirs = ['src/test/resources'] } } } repositories { mavenCentral() maven { url "https://jitpack.io" } } configurations { embed implementation.extendsFrom(embed) } dependencies { // Dependencies required for any plugin and/or extension to work implementation 'org.pf4j:pf4j:3.6.0' annotationProcessor 'org.pf4j:pf4j:3.6.0' implementation 'de.griefed:serverpackcreator:3.0.0-beta.3' // Required if you want to log to any of ServerPackCreators logs implementation 'org.apache.logging.log4j:log4j-api:2.17.1' // Dependencies your plugin or extension requires and need to be shipped within the plugin#s JAR-file embed 'commons-io:commons-io:2.11.0' embed 'org.apache.commons:commons-lang3:3.12.0' // Testing testImplementation 'org.mockito:mockito-core:4.3.1' testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.2' testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.2' } test { useJUnitPlatform() // Mention test result in logs testLogging { events "passed", "skipped", "failed" } } // Include specific files in resources folder, like the license and readme. tasks.register('about', Copy) { dependsOn tasks.named('clean') from layout.projectDirectory.file("LICENSE") into layout.projectDirectory.dir("src/main/resources") from layout.projectDirectory.file("README.md") into layout.projectDirectory.dir("src/main/resources") } tasks.withType(Javadoc) { options.addStringOption('encoding', 'UTF-8') } javadoc { options.memberLevel = JavadocMemberLevel.PRIVATE classpath = sourceSets.main.runtimeClasspath } java { withSourcesJar() withJavadocJar() } jar { duplicatesStrategy = DuplicatesStrategy.EXCLUDE from { configurations.embed.findAll { it.name.endsWith('jar') }.collect { zipTree(it) } } //noinspection GroovyAssignabilityCheck manifest { attributes( "Main-Class" : "de.griefed.serverpackcreatoraddonexample.ExamplePlugin", "Class-Path" : configurations.embed.findAll { it.name.endsWith('jar') }.collect { zipTree(it) }, "Description" : "Example plugin for ServerPackCreator", "Built-By" : System.getProperty("user.name"), "Build-Timestamp" : new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ").format(new Date()), "Created-By" : "Gradle ${gradle.gradleVersion}", "Build-Jdk" : "${System.getProperty('java.version')} (${System.getProperty('java.vendor')} ${System.getProperty('java.vm.version')})", "Build-OS" : "${System.getProperty('os.name')} ${System.getProperty('os.arch')} ${System.getProperty('os.version')}", "Plugin-Class" : "de.griefed.serverpackcreatoraddonexample.ExamplePlugin", "Plugin-Id" : "example-plugin", "Plugin-Provider" : "Griefed", "Plugin-Version" : "0.0.1", "Plugin-Description" : "Example plugin for ServerPackCreator", ) } }