plugins { id "com.github.johnrengelman.shadow" id 'java' id 'com.adarshr.test-logger' version '3.2.0' } group 'net.sf.openrocket' Properties props = new Properties() try { props.load(file('./src/main/resources/build.properties').newDataInputStream()) } catch (Exception ex) { throw new Exception("Missing build.properties. file: " + ex.getMessage()) } version = props['build.version'] repositories { mavenCentral() } //test { // testLogging { // events "PASSED", "SKIPPED", "FAILED" // } //} dependencies { implementation group: 'org.commonmark', name: 'commonmark', version: '0.19.0' // 0.21.0 implementation group: 'org.slf4j', name: 'slf4j-api', version: '1.7.30' // 2.0.6 implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.8.1' // 3.12.0 implementation group: 'com.google.inject', name: 'guice', version: '4.2.2' // 4.2.3, 5.1.0 implementation group: 'com.opencsv', name: 'opencsv', version: '5.7.1' implementation group: 'eu.infomas', name: 'annotation-detector', version: '3.0.5' implementation group: 'org.graalvm.sdk', name: 'graal-sdk', version: '22.1.0.1' // 22.3.1 implementation group: 'org.graalvm.js', name: 'js-scriptengine', version: '22.1.0.1' // 22.3.1 // implementation group: 'javax.script', name: 'script-api', version: '1.0-osgi' implementation group: 'org.graalvm.truffle', name: 'truffle-api', version: '22.1.0.1' // 22.3.1 implementation group: 'com.ibm.icu', name: 'icu4j', version: '71.1' // 72.1 implementation group: 'com.sun.istack', name: 'istack-commons-tools', version: '4.1.1' // TODO: Should be gotten rid of? implementation group: 'com.sun.istack', name: 'istack-commons-runtime', version: '4.1.1' // TODO: Should be gotten rid of? implementation group: 'javax.xml.bind', name: 'jaxb-api', version: '2.3.1' implementation 'org.glassfish.jaxb:jaxb-runtime:2.3.1' implementation 'org.glassfish:javax.json:1.1.3' // 1.1.4 implementation 'org.eclipse:yasson:1.0.2' // 2.0.1 implementation group: 'javax.activation', name: 'javax.activation-api', version: '1.2.0' testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: '5.3.1' // 5.9.2 testImplementation group: 'org.jmock', name: 'jmock', version: '2.9.0' // 2.12.0 testImplementation group: 'org.jmock', name: 'jmock-junit4', version: '2.9.0' // 2.12.0 testImplementation 'junit:junit:4.12' // 4.3.1 org.junit.jupiter // testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.0' // testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.7.0' } def serializedEnginesPath = './src/main/resources/datafiles/thrustcurves/thrustcurves.ser' tasks.register('serializeEnginesDelete', Delete) { group = 'openrocket' delete fileTree(serializedEnginesPath) } tasks.register('serializeEngines') { group = 'openrocket' if (!project.file(serializedEnginesPath).exists()) { println 'Serializing engines.' dependsOn serializeEnginesExecute } else { println 'Serialized engines in ${project.file(serializedEnginesPath)} already exist.' } } tasks.register('serializeEnginesExecute', JavaExec) { group = 'openrocket' workingDir new File(projectDir, 'build/tmp') classpath = sourceSets.main.runtimeClasspath mainClass.set('net.sf.openrocket.thrustcurve.SerializeThrustcurveMotors') args '../../resources-src/datafiles/thrustcurves/', '../.' + serializedEnginesPath } tasks.register('copyReadmeMain', Copy) { doLast { from('../') { include 'ReleaseNotes.md' } into './src/main/resources' } } clean.dependsOn([serializeEnginesDelete]) compileJava.dependsOn([copyReadmeMain]) // https://docs.gradle.org/7.4/userguide/cross_project_publications.html tasks.register('testCoreArtifactsJar', Jar) { archiveClassifier.set("tests") from sourceSets.test.output exclude "**/META-INF", "**/pix", "**/arch", "**/communication", "**/database", "**/file", "**/l10n", "**/models", "**/motor", "**/optimization", "**/plugin", "**/preset", "**/rocketcomponent", "**/simulation", "**/startup", "**/unit" include "**/ServicesForTesting.class", "**/util/BaseTestCase.class" } // https://docs.gradle.org/7.4/userguide/cross_project_publications.html configurations { testArtifacts { canBeConsumed = true canBeResolved = false extendsFrom testImplementation } } // https://docs.gradle.org/7.4/userguide/cross_project_publications.html artifacts { testArtifacts(testCoreArtifactsJar) }