176 lines
4.5 KiB
Kotlin
176 lines
4.5 KiB
Kotlin
plugins {
|
|
java
|
|
`java-library`
|
|
`maven-publish`
|
|
idea
|
|
id("com.github.ben-manes.versions") version "0.51.0"
|
|
}
|
|
|
|
group = "com.elex-project"
|
|
version = "1.0-SNAPSHOT"
|
|
description = ""//todo
|
|
|
|
repositories {
|
|
maven {
|
|
name = "Nexus 3 Repository"
|
|
url = uri(project.findProperty("repo.url") as String)
|
|
credentials {
|
|
username = project.findProperty("repo.username") as String
|
|
password = project.findProperty("repo.password") as String
|
|
}
|
|
}
|
|
maven {
|
|
url = uri("https://repo.maven.apache.org/maven2")
|
|
name = "Maven Central"
|
|
}
|
|
}
|
|
idea{
|
|
module {
|
|
isDownloadJavadoc=true
|
|
isDownloadSources=true
|
|
}
|
|
}
|
|
java {
|
|
withSourcesJar()
|
|
withJavadocJar()
|
|
sourceCompatibility = org.gradle.api.JavaVersion.VERSION_1_8
|
|
targetCompatibility = org.gradle.api.JavaVersion.VERSION_1_8
|
|
//modularity.inferModulePath.set(false)
|
|
}
|
|
|
|
configurations {
|
|
compileOnly {
|
|
extendsFrom(annotationProcessor.get())
|
|
}
|
|
testCompileOnly {
|
|
extendsFrom(testAnnotationProcessor.get())
|
|
}
|
|
}
|
|
|
|
tasks.jar {
|
|
manifest { // todo
|
|
attributes(mapOf(
|
|
"Implementation-Title" to project.name,
|
|
"Implementation-Version" to project.version,
|
|
"Implementation-Vendor" to "ELEX co.,pte.",
|
|
"Automatic-Module-Name" to "com.elex_project.${project.name}"
|
|
))
|
|
}
|
|
}
|
|
|
|
tasks.compileJava {
|
|
options.encoding = "UTF-8"
|
|
options.javaModuleVersion.set(provider { project.version as String })
|
|
}
|
|
|
|
tasks.compileTestJava {
|
|
options.encoding = "UTF-8"
|
|
}
|
|
|
|
tasks.test {
|
|
useJUnitPlatform()
|
|
}
|
|
|
|
tasks.javadoc {
|
|
if (JavaVersion.current().isJava9Compatible) {
|
|
(options as StandardJavadocDocletOptions).addBooleanOption("html5", true)
|
|
}
|
|
(options as StandardJavadocDocletOptions).encoding = "UTF-8"
|
|
(options as StandardJavadocDocletOptions).charSet = "UTF-8"
|
|
(options as StandardJavadocDocletOptions).docEncoding = "UTF-8"
|
|
|
|
}
|
|
|
|
publishing {
|
|
publications {
|
|
create<MavenPublication>("mavenJava") {
|
|
from(components["java"])
|
|
pom {
|
|
// todo
|
|
name.set(project.name)
|
|
description.set(project.description)
|
|
url.set("https://www.elex-project.com/")
|
|
inceptionYear.set("2022")
|
|
properties.set(mapOf(
|
|
"myProp" to "value",
|
|
"prop.with.dots" to "anotherValue"
|
|
))
|
|
organization {
|
|
name.set("Elex co.,Pte.")
|
|
url.set("https://www.elex-project.com/")
|
|
}
|
|
licenses {
|
|
license {
|
|
// todo
|
|
name.set("Apache License 2.0")
|
|
url.set("https://git.elex-project.com/elex/${project.name}/src/branch/main/LICENSE")
|
|
comments.set("")
|
|
}
|
|
}
|
|
developers {
|
|
developer {
|
|
id.set("elex")
|
|
name.set("Elex")
|
|
url.set("https://www.elex.pe.kr/")
|
|
email.set("developer@elex-project.com")
|
|
organization.set("Elex Co.,Pte.")
|
|
organizationUrl.set("https://www.elex-project.com/")
|
|
roles.set(arrayListOf("Developer", "CEO"))
|
|
timezone.set("Asia/Seoul")
|
|
properties.set(mapOf("" to ""))
|
|
}
|
|
}
|
|
contributors {
|
|
contributor {
|
|
name.set("")
|
|
email.set("")
|
|
url.set("")
|
|
}
|
|
}
|
|
scm {
|
|
// todo
|
|
connection.set("scm:git:https://git.elex-project.com/elex/${project.name}.git")
|
|
developerConnection.set("scm:git:https://git.elex-project.com/elex/${project.name}.git")
|
|
url.set("https://git.elex-project.com/elex/${project.name}/")
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
repositories {
|
|
maven {
|
|
name = "mavenElex"
|
|
val urlRelease = uri(project.findProperty("repo.release.url") as String)
|
|
val urlSnapshot = uri(project.findProperty("repo.snapshot.url") as String)
|
|
url = if (version.toString().endsWith("SNAPSHOT")) urlSnapshot else urlRelease
|
|
// Repository credential, Must be defined in ~/.gradle/gradle.properties
|
|
credentials {
|
|
username = project.findProperty("repo.username") as String
|
|
password = project.findProperty("repo.password") as String
|
|
}
|
|
}
|
|
maven { //todo
|
|
name = "mavenGithub"
|
|
url = uri("https://maven.pkg.github.com/elex-project/${project.name}")
|
|
credentials {
|
|
username = project.findProperty("github.username") as String
|
|
password = project.findProperty("github.token") as String
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
implementation(fileTree(mapOf("dir" to "libs", "include" to listOf("*.jar"))))
|
|
implementation("org.slf4j:slf4j-api:2.1.0-alpha1")
|
|
implementation("org.jetbrains:annotations:24.1.0")
|
|
|
|
compileOnly("org.projectlombok:lombok:1.18.30")
|
|
annotationProcessor("org.projectlombok:lombok:1.18.26")
|
|
testAnnotationProcessor("org.projectlombok:lombok:1.18.26")
|
|
|
|
testImplementation("ch.qos.logback:logback-classic:1.4.14")
|
|
testImplementation("org.junit.jupiter:junit-jupiter:5.10.1")
|
|
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.10.1")
|
|
}
|