subprojects { apply plugin: 'java' apply plugin: 'org.jetbrains.kotlin.jvm' apply plugin: 'kotlin-kapt' repositories { mavenLocal() mavenCentral() } group 'com.bartlomiejpluta' version '1.0-SNAPSHOT' sourceCompatibility = 17 compileKotlin { kotlinOptions.jvmTarget = "17" } compileTestKotlin { kotlinOptions.jvmTarget = "17" } dependencies { // compileOnly important!!! We do not want to put the api into the zip file since the main program has it already! implementation project(':api') implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8" kapt(group: 'org.pf4j', name: 'pf4j', version: "3.2.0") implementation(group: 'org.pf4j', name: 'pf4j', version: "3.2.0") { exclude group: "org.slf4j" } } jar { manifest { attributes 'Plugin-Id': "${pluginId}", 'Plugin-Class': "${pluginClass}", 'Plugin-Version': "${pluginVersion}", 'Plugin-Provider': "${pluginProvider}", 'Plugin-Dependencies': "${pluginDependencies}" } } task plugin(type: Jar) { archiveBaseName = "plugin-${pluginId}" into('classes') { with jar } into('lib') { from configurations.implementation } archiveExtension = 'zip' } task assemblePlugin(type: Copy) { from jar into pluginsDir } } task clean { dependsOn subprojects.clean } task assemblePlugins(type: Copy) { dependsOn subprojects.assemblePlugin } task build { dependsOn assemblePlugins }