1- import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
2-
31plugins {
42 id ' java-library'
53 id ' jacoco'
6- id ' com.gradleup.shadow ' version ' 8.3 .0'
4+ id ' gov.nasa.ammos.aerie.procedural.plugin ' version ' 0.1 .0'
75}
86
97java {
@@ -57,14 +55,6 @@ task e2eTest(type: Test) {
5755}
5856
5957dependencies {
60- annotationProcessor project(' :procedural:processor' )
61-
62- implementation project(" :procedural:scheduling" )
63- implementation project(" :procedural:timeline" )
64- implementation project(' :merlin-sdk' )
65- implementation project(' :type-utils' )
66- implementation project(' :contrib' )
67-
6858 testImplementation project(" :procedural:remote" )
6959 testImplementation " com.zaxxer:HikariCP:5.1.0"
7060 testImplementation(" org.postgresql:postgresql:42.6.0" )
@@ -77,65 +67,3 @@ dependencies {
7767 testImplementation ' org.junit.jupiter:junit-jupiter-engine:5.10.0'
7868 testImplementation ' org.junit.jupiter:junit-jupiter-params:5.10.0'
7969}
80-
81- tasks. register(' buildAllSchedulingProcedureJars' ) {
82- group = ' SchedulingProcedureJars'
83-
84- dependsOn " generateSchedulingProcedureJarTasks"
85- dependsOn {
86- tasks. findAll { task -> task. name. startsWith(' buildSchedulingProcedureJar_' ) }
87- }
88- }
89-
90- tasks. create(" generateSchedulingProcedureJarTasks" ) {
91- group = ' SchedulingProcedureJars'
92-
93- final proceduresDir = findFirstMatchingBuildDir(" generated/procedures" )
94-
95- if (proceduresDir == null ) {
96- println " No procedures folder found"
97- return
98- }
99- println " Generating jar tasks for the following procedures directory: ${ proceduresDir} "
100-
101- final files = file(proceduresDir). listFiles()
102- if (files. length == 0 ) {
103- println " No procedures available within folder ${ proceduresDir} "
104- return
105- }
106-
107- files. toList(). each { file ->
108- final nameWithoutExtension = file. name. replace(" .java" , " " )
109- final taskName = " buildSchedulingProcedureJar_${ nameWithoutExtension} "
110-
111- println " Generating ${ taskName} task, which will build ${ nameWithoutExtension} .jar"
112-
113- tasks. create(taskName, ShadowJar ) {
114- group = ' SchedulingProcedureJars'
115- configurations = [project. configurations. compileClasspath]
116- from sourceSets. main. output
117- archiveBaseName = " " // clear
118- archiveClassifier. set(nameWithoutExtension) // set output jar name
119- manifest {
120- attributes ' Main-Class' : getMainClassFromGeneratedFile(file)
121- }
122- minimize()
123- }
124- }
125- }
126-
127- private String findFirstMatchingBuildDir (String pattern ) {
128- String found = null
129- final generatedDir = file(" build/generated/sources" )
130- generatedDir. mkdirs()
131- generatedDir. eachDirRecurse { dir -> if (dir. path. contains(pattern)) found = dir. path }
132- return found
133- }
134-
135- private static String getMainClassFromGeneratedFile (File file ) {
136- final fileString = file. toString()
137- final prefix = " build/generated/sources/annotationProcessor/java/main/"
138- final index = fileString. indexOf(prefix) + prefix. length()
139- final trimmed = fileString. substring(index). replace(" .java" , " " )
140- return trimmed. replace(" /" , " ." )
141- }
0 commit comments