plugins { id 'java' id 'java-library' id 'maven-publish' id 'application' id 'com.github.johnrengelman.shadow' version '7.1.0' } group 'cc.sukazyo' version VERSION project.ext.archiveBaseName = 'Coeur_Morny_Cono' project.ext.artifactId = 'morny-coeur' mainClassName = 'cc.sukazyo.cono.morny.ServerMain' repositories { mavenCentral() maven { name '-ws'; url 'https://mvn.sukazyo.cc/releases' } } String untitled (String lib, String upd = null) { int majorCode = Integer.parseInt(project.libUntitledVersionMajor) return "cc.sukazyo.untitled:$lib:[$majorCode${upd==null?"":".$upd"}, ${majorCode+1}[" } dependencies { compileOnlyApi "com.github.spotbugs:spotbugs-annotations:${libSpotbugsVersion}" implementation untitled("util-command-parser","1.0") implementation untitled("util-string-commons", "1.0") implementation untitled("util-telegram-api", "2.1") implementation untitled("util-telegram-api-formatter", "3.3") implementation untitled("util-telegram-commons", "1.0") api "cc.sukazyo:messiva:${libMessivaVersion}" implementation "com.github.pengrad:java-telegram-bot-api:${libJavaTelegramBotApiVersion}" testImplementation "org.junit.jupiter:junit-jupiter-api:${libJunitVersion}" testImplementation "org.junit.jupiter:junit-jupiter-params:${libJunitVersion}" testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:${libJunitVersion}" } task updateVersionCode { ant.replaceregexp(match:'VERSION = ["a-zA-Z0-9.\\-_+@]+;', replace:"VERSION = \"$project.version\";", flags:'g', byline:true) { fileset(dir: 'src/main/java/cc/sukazyo/cono/morny', includes: 'GradleProjectConfigures.java') } ant.replaceregexp(match:'CODENAME = ["a-zA-Z0-9]+;', replace:"CODENAME = \"${CODENAME}\";", flags:'g', byline:true) { fileset(dir: 'src/main/java/cc/sukazyo/cono/morny', includes: 'GradleProjectConfigures.java') } ant.replaceregexp(match:'COMPILE_TIMESTAMP = [0-9]+L;', replace:"COMPILE_TIMESTAMP = ${System.currentTimeMillis()}L;", flags:'g', byline:true) { fileset(dir: 'src/main/java/cc/sukazyo/cono/morny', includes: 'GradleProjectConfigures.java') } } compileJava.dependsOn updateVersionCode test { useJUnitPlatform() } java { sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 withSourcesJar() } tasks.withType(JavaCompile) { options.encoding = "UTF-8" } tasks.withType(Javadoc) { options.encoding = 'UTF-8' options.docEncoding = 'UTF-8' options.charSet = 'UTF-8' } tasks.test { useJUnitPlatform() } shadowJar { archiveBaseName.set("${project.ext.archiveBaseName}") archiveVersion.set("${project.version}") archiveClassifier.set("fat") } publishing { repositories{ maven { name 'builds' url publishLocalArchiveRepoUrl } maven { name '-ws-' url publishMvnRepoUrl credentials { username publishMvnRepoUsername password publishMvnRepoPassword } } } publications { main (MavenPublication) { from components.java groupId = project.group artifactId = project.ext.artifactId version = project.version } } }