plugins { id 'java-library' id 'maven-publish' id 'signing' id 'com.github.johnrengelman.shadow' version '8.1.1' } group = 'mp.code' version = '0.0.1-SNAPSHOT' java { sourceCompatibility = targetCompatibility = JavaVersion.VERSION_1_8 } repositories { mavenCentral() maven { url 'https://jitpack.io' } } sourceSets { main.java.srcDirs = ['src/'] } dependencies { implementation 'com.github.adamheinrich:native-utils:master-SNAPSHOT' compileOnly 'org.projectlombok:lombok:1.18.34' annotationProcessor 'org.projectlombok:lombok:1.18.34' } shadowJar { archiveClassifier.set('') dependencies { include(dependency('com.github.adamheinrich:native-utils:master-SNAPSHOT')) } } def rustDir = projectDir.toPath() .parent .parent .resolve('target') .resolve('release') .toFile() processResources { outputs.upToDateWhen { false } // no caching from(rustDir) { include('*.dll') include('*.so') include('*dylib') into('natives/') } } tasks.register('cargoBuild', Exec) { workingDir '.' commandLine 'cargo', 'build', '--release', '--features=java' } processResources.dependsOn cargoBuild build.finalizedBy shadowJar publishing { publications { mavenJava(MavenPublication) { artifactId = rootProject.name version = project.version from components.java pom { name = 'codemp' description = 'A collaborative editor plugin ecosystem' url = 'https://code.mp' licenses { license { name = 'The GNU General Public License v3.0' url = 'https://www.gnu.org/licenses/gpl-3.0.txt' } } developers { developer { id = 'zaaarf' email = 'zaaarf@codemp.dev' } } scm { connection = 'scm:git:git://github.com/hexedtech/codemp.git' developerConnection = 'scm:git:ssh://github.com/hexedtech/codemp.git' url = 'https://github.com/hexedtech/codemp/' } } } } repositories { maven { name = "centralManualTesting" url "https://central.sonatype.com/api/v1/publisher/deployments/download/" credentials { username = System.getenv('MAVEN_CENTRAL_USERNAME') password = System.getenv('MAVEN_CENTRAL_PASSWORD') } } mavenCentral() } } signing { def signingKey = System.getenv('MAVEN_CENTRAL_GPG_SECRET_KEY') def signingPassword = System.getenv('MAVEN_CENTRAL_GPG_PASSWORD') useInMemoryPgpKeys(signingKey, signingPassword) sign publishing.publications.mavenJava }