mirror of
https://github.com/ethauvin/rife2-hello.git
synced 2025-04-24 15:07:11 -07:00
This commit introduces a _convention plugin_ for RIFE2 support. It provides a number of advantages: - the build logic is clearly separated from the build script, which now only contains user-specific configuration, like the framework version or how to configure test logging - it fixes a number of issues like hardcoded dependencies (`dependsOn` is in general a mistake) - it removes the need to resolve the agent path eagerly - it makes the agent configurable - it clearly separates the user classpath from the RIFE classpath (both for precompiling templates and for the agent) - template compilation is cached - it avoids the abuse of `src/main/resources` to put templates and uses a dedicated directory instead, which removes the need for exclusions In addition, this should make it relatively straightforward to convert the convention plugin into a proper RIFE2 plugin, by extracting the code in `build-logic` into its own repository then publishing to the Gradle plugin portal.
46 lines
1 KiB
Kotlin
46 lines
1 KiB
Kotlin
import org.gradle.api.tasks.testing.logging.TestExceptionFormat
|
|
import org.gradle.api.tasks.testing.logging.TestLogEvent
|
|
|
|
plugins {
|
|
application
|
|
id("com.uwyn.rife2")
|
|
}
|
|
|
|
base {
|
|
archivesName.set("hello")
|
|
version = 1.0
|
|
}
|
|
|
|
application {
|
|
mainClass.set("hello.App")
|
|
}
|
|
|
|
repositories {
|
|
// Use Maven Central for resolving dependencies.
|
|
mavenCentral()
|
|
maven { url = uri("https://s01.oss.sonatype.org/content/repositories/snapshots") } // only needed for SNAPSHOT
|
|
}
|
|
|
|
rife2 {
|
|
version.set("1.3.0")
|
|
useAgent.set(true)
|
|
}
|
|
|
|
dependencies {
|
|
runtimeOnly("org.eclipse.jetty:jetty-server:11.0.13")
|
|
runtimeOnly("org.eclipse.jetty:jetty-servlet:11.0.13")
|
|
runtimeOnly("org.slf4j:slf4j-simple:2.0.5")
|
|
|
|
testImplementation("org.jsoup:jsoup:1.15.3")
|
|
testImplementation("org.junit.jupiter:junit-jupiter:5.9.1")
|
|
}
|
|
|
|
tasks {
|
|
test {
|
|
useJUnitPlatform()
|
|
testLogging {
|
|
exceptionFormat = TestExceptionFormat.FULL
|
|
events = setOf(TestLogEvent.PASSED, TestLogEvent.SKIPPED, TestLogEvent.FAILED)
|
|
}
|
|
}
|
|
}
|