Discussed an alternate strategy, one that would not require the user to define a fuseki Gradle configuration by defining the fuseki configuration in the task itself instead of the user project.
This strategy does not work because Gradle resolves configurations based on the project's configurations, not a task configuration.
We also discussed whether we could use just jena-fuseki-fulljar
That turns out to be insufficient because the Fuseki server needs an explicit webapp folder.
We get a lot of jars in the classpath because of the transitive dependencies of org.apache.jena:jena-fuseki-war:4.6.0.
The above yields:
> Task :startFuseki
StartFusekiTask.configure=true
Caching disabled for task ':startFuseki' because:
Build cache is disabled
Task ':startFuseki' is not up-to-date because:
Task has failed previously.
=================================================================
S T A R T
OWL Fuseki 1.1.0
=================================================================
fusekiWarPomURL=jar:file:/C:/Users/rouquette/.gradle/caches/modules-2/files-2.1/org.apache.jena/jena-fuseki-war/4.6.0/bda004604e18cd60d25692f86fab1e5a2f317ed9/jena-fuseki-war-4.6.0.war!/META-INF/maven/org.apache.jena/jena-fuseki-war/pom.xml
Process args: [C:\Users\rouquette\scoop\apps\openjdk11\current\bin\java.exe, -Dlog4j.configurationFile=webapp/log4j2.properties, -cp, C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\org.apache.jena\jena-fuseki-server\4.6.0\f3748cdc24337c128fca9be219e4b1ae3c908419\jena-fuseki-server-4.6.0.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\org.apache.jena\jena-fuseki-war\4.6.0\bda004604e18cd60d25692f86fab1e5a2f317ed9\jena-fuseki-war-4.6.0.war;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\org.apache.jena\jena-fuseki-webapp\4.6.0\bccd65e18cc4beece6762c9e90c303a307871944\jena-fuseki-webapp-4.6.0.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\org.apache.logging.log4j\log4j-slf4j-impl\2.18.0\e0ea6ef49f1349bb30e8c6e8a7052d0f3ee7a719\log4j-slf4j-impl-2.18.0.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\org.apache.logging.log4j\log4j-web\2.18.0\c9c1a7a61945ef71ec4eece0fad26c1b4b996006\log4j-web-2.18.0.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\org.apache.logging.log4j\log4j-core\2.18.0\7c1882ede137548925eadb750615edab2f6e13c\log4j-core-2.18.0.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\org.apache.logging.log4j\log4j-api\2.18.0\c72ad9b1d8d42e4ea7befd8248bf05877af4c63d\log4j-api-2.18.0.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\org.apache.jena\jena-fuseki-core\4.6.0\fd34608045e9532252071178a3c7d352f3354f4f\jena-fuseki-core-4.6.0.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\org.apache.jena\jena-text\4.6.0\ba7c65580683bd11547c9b2ad9e446ab9abacba2\jena-text-4.6.0.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\org.apache.jena\jena-cmds\4.6.0\f9872967d235fc4307322a80190e39177e152249\jena-cmds-4.6.0.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\org.eclipse.jetty\jetty-webapp\10.0.11\686b459ff1a99262db47309cb9a681e3326af06e\jetty-webapp-10.0.11.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\org.apache.shiro\shiro-web\1.9.1\b16a886b516ecbc2e56dc7221884771270c97c82\shiro-web-1.9.1.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\org.apache.shiro\shiro-core\1.9.1\90263d749749198f0a6dbdca57b52fa6d903d3db\shiro-core-1.9.1.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\org.eclipse.jetty\jetty-servlet\10.0.11\c56b9f119a3bd13566c5aaba6d334d459573edb1\jetty-servlet-10.0.11.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\org.eclipse.jetty\jetty-servlets\10.0.11\bd7f3371680ac4a28b5bf12fd5ca152ab42a9a8c\jetty-servlets-10.0.11.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\org.eclipse.jetty\jetty-xml\10.0.11\331fb717e57264e4d64563b1122ef23154b5c129\jetty-xml-10.0.11.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\org.apache.shiro\shiro-cache\1.9.1\d1a9b005861f43cbab4e2b0423eb1b2d028f7606\shiro-cache-1.9.1.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\org.apache.shiro\shiro-crypto-hash\1.9.1\3dbfccd8a083bb1664bf37a45eaf58a169934033\shiro-crypto-hash-1.9.1.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\org.apache.shiro\shiro-crypto-cipher\1.9.1\a941da2b277f3add36c6309ab531fc91f4bafd57\shiro-crypto-cipher-1.9.1.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\org.apache.shiro\shiro-config-ogdl\1.9.1\34eb92458dad19890108be88726efed5dddc1802\shiro-config-ogdl-1.9.1.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\org.apache.shiro\shiro-config-core\1.9.1\4d00cb5ccb0423b659cde73e7d7607aa8133f0da\shiro-config-core-1.9.1.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\org.apache.shiro\shiro-event\1.9.1\e6aedd00266be7d5971441a9ea9001e6c5b0c966\shiro-event-1.9.1.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\org.apache.shiro\shiro-crypto-core\1.9.1\18ccccd99230a7bf7316990a48b3b6a3c3b2309d\shiro-crypto-core-1.9.1.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\org.apache.shiro\shiro-lang\1.9.1\c86af24ba0569075de944c3ace6e0ea6e450a9e1\shiro-lang-1.9.1.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\org.eclipse.jetty\jetty-security\10.0.11\ea040b7473b5e07750e6f31f47d75ca6f274e333\jetty-security-10.0.11.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\org.eclipse.jetty\jetty-server\10.0.11\55f6f89d11f6d05130162c10f6e5c8740aa8b2f0\jetty-server-10.0.11.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\org.eclipse.jetty\jetty-http\10.0.11\d8c120cc491290be39c7377b7654e00a32ef2cea\jetty-http-10.0.11.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\org.eclipse.jetty\jetty-io\10.0.11\b0b8b522ec9ee24bbda396b65244d5bbd32559cf\jetty-io-10.0.11.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\org.eclipse.jetty\jetty-util\10.0.11\f8adfcddcca8380a25d82a1cc4ae12ca6813ad44\jetty-util-10.0.11.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\org.apache.jena\apache-jena-libs\4.6.0\6e564e8177fb1e3a89bbee27f2861ebe721c8fd7\apache-jena-libs-4.6.0.pom;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\org.apache.jena\jena-shacl\4.6.0\73e2b0d371d41096573cb46a7854f7070a82615a\jena-shacl-4.6.0.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\org.apache.jena\jena-shex\4.6.0\c850d3a66658803ba8a7774fef2496d83a4b7ed9\jena-shex-4.6.0.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\org.apache.jena\jena-tdb\4.6.0\3885b28cffa8ba79858a6e07e6c56f2ea8c29629\jena-tdb-4.6.0.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\org.apache.jena\jena-rdfconnection\4.6.0\653fb2bbae9561d4b8512093cc31914c93412d2f\jena-rdfconnection-4.6.0.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\org.apache.jena\jena-tdb2\4.6.0\a15a3e37813180f667daee2d80aeb6cfb4ee5902\jena-tdb2-4.6.0.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\org.apache.jena\jena-dboe-storage\4.6.0\fbb39577a10c4039d7756d5423184c0012d43120\jena-dboe-storage-4.6.0.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\org.apache.jena\jena-dboe-trans-data\4.6.0\3f3bb2d57b06310f63cb98fbe6f53744b78f4a9c\jena-dboe-trans-data-4.6.0.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\org.apache.jena\jena-dboe-transaction\4.6.0\3952376e4c5545ab6b4567c2e9d5a733ef919a8e\jena-dboe-transaction-4.6.0.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\org.apache.jena\jena-dboe-index\4.6.0\74afaba4022fe417315658bca816ed2eaae7ec88\jena-dboe-index-4.6.0.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\org.apache.jena\jena-dboe-base\4.6.0\4f4ad252cac3ee46a6dc655a6644e06b52d6c24\jena-dboe-base-4.6.0.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\org.apache.jena\jena-arq\4.6.0\a7ef862817e5b7d705d776fba90d3c64953f588e\jena-arq-4.6.0.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\org.slf4j\jcl-over-slf4j\1.7.36\d877e195a05aca4a2f1ad2ff14bfec1393af4b5e\jcl-over-slf4j-1.7.36.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\org.apache.jena\jena-core\4.6.0\9140fd5c6146c1028c8da19b5e67c5ab43d5e5f0\jena-core-4.6.0.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\org.apache.jena\jena-base\4.6.0\24935e77477a3bdc7b63a25adf845cb3e8ac4863\jena-base-4.6.0.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\org.slf4j\slf4j-api\2.0.0-alpha6\4dbe258ca244936b915f15bc6006cb4224421390\slf4j-api-2.0.0-alpha6.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\commons-fileupload\commons-fileupload\1.4\f95188e3d372e20e7328706c37ef366e5d7859b0\commons-fileupload-1.4.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\io.micrometer\micrometer-registry-prometheus\1.9.2\5d9bf0e214612d896ec36f889b6a4a0f2ff2200\micrometer-registry-prometheus-1.9.2.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\io.micrometer\micrometer-core\1.9.2\8eed85a5337c7b4e84156cc0f3921930fb0d780b\micrometer-core-1.9.2.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\org.apache.lucene\lucene-analyzers-common\8.11.1\e50af506f271a3f7246da054a2569b42ff73abb2\lucene-analyzers-common-8.11.1.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\org.apache.lucene\lucene-queryparser\8.11.1\5a44df2cb26fa1e0e64be53fe474c7f1d5a3e634\lucene-queryparser-8.11.1.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\org.apache.lucene\lucene-highlighter\8.11.1\558a389a0d68aa7cc4c26b9128c72d0d269d471f\lucene-highlighter-8.11.1.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\org.apache.lucene\lucene-backward-codecs\8.11.1\4fafe3e150805be67778ba5cdbae2560c893ad8\lucene-backward-codecs-8.11.1.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\org.apache.lucene\lucene-core\8.11.1\75dcf930ece95581af3f31af5692e4963fc7ad8e\lucene-core-8.11.1.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\org.owasp.encoder\encoder\1.2.2\664346e62c3a95e1de5153db231bd283392a9532\encoder-1.2.2.jar;C:\Users\rouquette\.m2\repository\commons-io\commons-io\2.11.0\commons-io-2.11.0.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\org.hdrhistogram\HdrHistogram\2.1.12\6eb7552156e0d517ae80cc2247be1427c8d90452\HdrHistogram-2.1.12.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\org.latencyutils\LatencyUtils\2.0.3\769c0b82cb2421c8256300e907298a9410a2a3d3\LatencyUtils-2.0.3.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\io.prometheus\simpleclient_common\0.15.0\57bd1d8be9f4d965a38c6b1b35ee60358cc679fc\simpleclient_common-0.15.0.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\com.github.jsonld-java\jsonld-java\0.13.4\206e302e18e4e1f5c723a90764e50c7eef954887\jsonld-java-0.13.4.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\com.google.code.gson\gson\2.9.1\2cc2131b98ebfb04e2b2c7dfb84431f4045096b\gson-2.9.1.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\org.apache.httpcomponents\httpclient-cache\4.5.13\4abee263cbc9edc12393212ca3a7c89af0755b1f\httpclient-cache-4.5.13.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\org.apache.thrift\libthrift\0.16.0\995b1788bf9d954a77a24db5619a065ed1a455e9\libthrift-0.16.0.jar;C:\Users\rouquette\.m2\repository\org\apache\httpcomponents\httpclient\4.5.13\httpclient-4.5.13.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.core\jackson-databind\2.13.3\56deb9ea2c93a7a556b3afbedd616d342963464e\jackson-databind-2.13.3.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.core\jackson-core\2.13.3\a27014716e4421684416e5fa83d896ddb87002da\jackson-core-2.13.3.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\com.apicatalog\titanium-json-ld\1.3.1\f1d8ae76ff40f186c656ed2c58e998ce2a528faa\titanium-json-ld-1.3.1.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\org.glassfish\jakarta.json\2.0.1\da6c75e591cf2a89ddc479cbdbd8fe5f41d3efc9\jakarta.json-2.0.1.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\com.google.protobuf\protobuf-java\3.21.4\9947febd7a6d0695726c78f603a149b7b7c108e0\protobuf-java-3.21.4.jar;C:\Users\rouquette\.m2\repository\org\apache\commons\commons-lang3\3.12.0\commons-lang3-3.12.0.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\org.apache.lucene\lucene-queries\8.11.1\2a0abca16b31453cbd832ba27c96fce1208db5e\lucene-queries-8.11.1.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\org.apache.lucene\lucene-sandbox\8.11.1\bd4392f44a5f7ed798baca88896c0ff6a428ab90\lucene-sandbox-8.11.1.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\org.apache.lucene\lucene-memory\8.11.1\e6e3a3e19bf9c7860c31966d52dfbf16909f4cc0\lucene-memory-8.11.1.jar;C:\Users\rouquette\.m2\repository\commons-beanutils\commons-beanutils\1.9.4\commons-beanutils-1.9.4.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\io.prometheus\simpleclient\0.15.0\144aaf1ac9361a497d98079e0db8757a95e22fc4\simpleclient-0.15.0.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\org.apache.jena\jena-iri\4.6.0\2838da2068e7bfe2b8e21dd9d524877d568a6bc9\jena-iri-4.6.0.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\commons-cli\commons-cli\1.5.0\dc98be5d5390230684a092589d70ea76a147925c\commons-cli-1.5.0.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\org.apache.httpcomponents\httpcore\4.4.13\853b96d3afbb7bf8cc303fe27ee96836a10c1834\httpcore-4.4.13.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.core\jackson-annotations\2.13.3\7198b3aac15285a49e218e08441c5f70af00fc51\jackson-annotations-2.13.3.jar;C:\Users\rouquette\.m2\repository\javax\annotation\javax.annotation-api\1.3.2\javax.annotation-api-1.3.2.jar;C:\Users\rouquette\.m2\repository\commons-collections\commons-collections\3.2.2\commons-collections-3.2.2.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\org.eclipse.jetty.toolchain\jetty-servlet-api\4.0.6\959c5d83d08f5cddf56caff749e48b735193191b\jetty-servlet-api-4.0.6.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\io.prometheus\simpleclient_tracer_otel\0.15.0\53770a575d13d5aeebc7e2ebd7cc714496d7ab28\simpleclient_tracer_otel-0.15.0.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\io.prometheus\simpleclient_tracer_otel_agent\0.15.0\9c2f1a317960110581857911ca5fd7379ba77e28\simpleclient_tracer_otel_agent-0.15.0.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\org.apache.jena\jena-shaded-guava\4.6.0\f7ef064bddfb7e4646b93614cf2d9ca893899465\jena-shaded-guava-4.6.0.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\org.apache.commons\commons-csv\1.9.0\b59d8f64cd0b83ee1c04ff1748de2504457018c1\commons-csv-1.9.0.jar;C:\Users\rouquette\.m2\repository\commons-codec\commons-codec\1.15\commons-codec-1.15.jar;C:\Users\rouquette\.m2\repository\org\apache\commons\commons-compress\1.21\commons-compress-1.21.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\com.github.andrewoma.dexx\collection\0.7\264efc08bdcd22126bd429aaea9efaf5158b2b90\collection-0.7.jar;C:\Users\rouquette\.m2\repository\commons-logging\commons-logging\1.2\commons-logging-1.2.jar;C:\Users\rouquette\.gradle\caches\modules-2\files-2.1\io.prometheus\simpleclient_tracer_common\0.15.0\f1bac57eaf6c04e6b72a08b44a0e6569e87974a4\simpleclient_tracer_common-0.15.0.jar, org.apache.jena.fuseki.cmd.FusekiCmd, --port, 3031, --config=C:\opt\local\srl-fse\srl-fse-model\.fuseki.ttl, null]
> Task :startFuseki FAILED
:startFuseki (Thread[Execution worker Thread 9,5,main]) completed. Took 2.012 secs.
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':startFuseki'.
> java.lang.NullPointerException (no error message)
* Try:
> Run with --debug option to get more log output.
> Run with --scan to get full insights.
* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':startFuseki'.
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.lambda$executeIfValid$1(ExecuteActionsTaskExecuter.java:142)
at org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:282)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:140)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:128)
at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:77)
at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199)
at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:69)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:327)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:314)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:307)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:293)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:420)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:342)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
Caused by: java.lang.NullPointerException
at org.gradle.internal.classpath.Instrumented.start(Instrumented.java:329)
at io.opencaesar.owl.fuseki.StartFusekiTask.run(StartFusekiTask.java:156)
Discussed an alternate strategy, one that would not require the user to define a
fuseki
Gradle configuration by defining thefuseki
configuration in the task itself instead of the user project.This strategy does not work because Gradle resolves configurations based on the project's configurations, not a task configuration.
If the Fuseki dependencies were declared as part of the task implementation, then resolving Fuseki on the task classloader will yield Gradle-instrumented jars that will not work because of this issue: https://github.com/gradle/gradle/issues/14727#issuecomment-860124368 (see: https://github.com/opencaesar/owl-tools/issues/27)
Tried to simplify the owl-fuseki-gradle/owl-fuseki by combining both in a single task. Somehow, there is still a Gradle jar instrumentation problem:
in
build.gradle
:We also discussed whether we could use just
jena-fuseki-fulljar
That turns out to be insufficient because the Fuseki server needs an explicitwebapp
folder.Even with
We get a lot of jars in the classpath because of the transitive dependencies of
org.apache.jena:jena-fuseki-war:4.6.0
.The above yields: