openjfx / javafx-gradle-plugin Goto Github PK
View Code? Open in Web Editor NEWGradle plugin that makes it easy to work with JavaFX 11+
Home Page: https://openjfx.io/
License: BSD 3-Clause "New" or "Revised" License
Gradle plugin that makes it easy to work with JavaFX 11+
Home Page: https://openjfx.io/
License: BSD 3-Clause "New" or "Revised" License
Consider a scenario where a project with javafx-gradle-plugin
is trying to use version 11 for JavaFX modules and it also has a dependency on ControlsFX 11.0.2.
javafx {
version = "11"
modules = [ 'javafx.controls' ]
}
dependencies {
compile 'org.controlsfx:controlsfx:11.0.1'
}
In this case the project will fail to run. ControlsFX introduces a transitive dependency to JavaFX 11.0.2 and since classpath always uses the latest version, the plugin fails to find JavaFX modules with version 11 on the classpath.
This can be fixed by doing a version-less comparison while adding JavaFX modules to module-path from the classpath.
The Kotlin DSL for Gradle has been fairly recently introduced. Nonetheless, it is already the default syntax for use for Android development. Having to translate example code from Groovy syntax to Kotlin syntax causes potential users of your plugin to have one additional potential source of errors and misunderstandings when trying to use the plugin.
Please provide each Gradle code samples in both syntaxes, to make it unnecessary for a potential user to have to translate one syntax to the other.
See this JavaFX bug report for more context on this request.
Hello,
To begin I must say that this plugin greatly simplified my life. Thank you so much.
But there is a detail that I do not understand, which is perfectly contournable and that I go back only for information.
If I run a JavaFX window following the most basic "Hello world" example, I get an error:
Error: JavaFX runtime components are missing, and are required to run this application
The build.gradle source :
plugins {
id 'org.openjfx.javafxplugin' version '0.0.8'
}
repositories {
jcenter()
}
javafx {
version = "11"
modules = [ 'javafx.controls', 'javafx.fxml' ]
}
The java source :
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class TestWin extends Application {
@Override
public void start(Stage primaryStage) {
StackPane root = new StackPane();
Scene scene = new Scene(root, 300, 250);
primaryStage.setTitle("Hello World!");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
But if I call the same code with an indirection then I get a JavaFX window instead of the error.
The java sources :
public class TestWin {
public static void main(String[] args) {
TestWinImpl.inition(args);
}
}
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class TestWinImpl extends Application {
@Override
public void start(Stage primaryStage) {
StackPane root = new StackPane();
Scene scene = new Scene(root, 300, 250);
primaryStage.setTitle("Hello World!");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void inition(String[] args) {
launch(args);
}
}
I use OpenJDK-11 on Mac OS.
The new paradigm for authoring Gradle plugins advises against using Project::afterEvaluate
because it can unintentionally create plugin application ordering issues.
Instead, plugins should use lazy properties for their tasks/extensions.
You can read more here:
https://docs.gradle.org/current/userguide/lazy_configuration.html
In some occasions, it can be necessary using a local JavaFX SDK instead of the published artifacts from Maven Central, for instance when testing a local build of OpenJFX.
since 0.0.7 is released, it should not be in the build.gradle anymore
Please add comments in the plugin source code explaining WHAT each function or block of code is intending to accomplish and WHY doing that is necessary or useful (i.e. what would happen if the plugin didn't do that).
It is difficult to determine whether the plugin's behavior is correct or complete without knowing what the goals of the code are intended to be.
Please provide detailed documentation as to what this plugin is supposed to do: what tasks it is supposed to modify the behavior of, and in what way, and how it will handle issues like .fxml files, whether it will cause conflicts with use of other Gradle features, etc. The current Readme.md is not adequate for determining what effect this plugin will have on a Gradle script, and hence whether using this plugin is a good idea or even which problems it is expected to provide solutions to.
See this JavaFX bug report for more context on this request.
When running in a gradle multi-project, the build will fail with an error similar to the following:
A problem occurred configuring project ':Base'.
> Cannot change dependencies of configuration ':Base:compile' after it has been included in dependency resolution.
This is caused by the plugin modifying the dependencies in the afterEvaluate
project method.
I have resolved this issue in a fork and submitted a pull request, q.v.:
The JavaFX gradle plugin applies the required platform-dependent classifier to any JavaFX module included in a project.
But if this project is being published with the maven
plugin, this plugin generates a pom
file based on the existing dependencies. Since the JavaFX ones include the classifier, this classifier will go to the pom. In other words, the pom will have a JavaFX dependency with a classifier based on the platform from where it was published.
If later on this library is consumed in a different platform, artifacts for both platforms will be added, causing a possible conflict due to split package.
To avoid this issue, the JavaFX gradle plugin could add a task to remove the classifier in case the maven plugin is used.
I had the Cannot change dependencies of configuration
issue which is fixed on master.
Thanks for this plugin!
Can't install this plugin jdk13. WIndows 10x64 IntellijIDEA Community 2019.
Create new project with gradle.
Project structure
build.gradle
`plugins {
id 'java'
id "org.openjfx.javafxplugin" version "0.0.8"
}
group 'net.nixwins'
version '1.0-SNAPSHOT'
sourceCompatibility = '13'
repositories {
mavenCentral()
}
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.12'
}
`
FAILURE: Build failed with an exception.
Where:
Build file 'E:\prj\school\someprj\build.gradle' line: 3
What went wrong:
Plugin [id: 'org.openjfx.javafxplugin', version: '0.0.8'] was not found in any of the following sources:
Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
Get more help at https://help.gradle.org
CONFIGURE FAILED in 0s
Try run with --stacktrace
FAILURE: Build failed with an exception.
Where:
Build file 'E:\prj\school\someprj\build.gradle' line: 3
What went wrong:
Plugin [id: 'org.openjfx.javafxplugin', version: '0.0.8'] was not found in any of the following sources:
Try:
Run with --info or --debug option to get more log output. Run with --scan to get full insights.
Exception is:
org.gradle.api.plugins.UnknownPluginException: Plugin [id: 'org.openjfx.javafxplugin', version: '0.0.8'] was not found in any of the following sources:
CONFIGURE FAILED in 0s
--debug
15:52:56.155 [INFO] [org.gradle.launcher.daemon.server.exec.LogToClient] The client will now receive all logging from the daemon (pid: 10076). The daemon log file: C:\Users\admin.gradle\daemon\5.2.1\daemon-10076.out.log
15:52:56.158 [INFO] [org.gradle.launcher.daemon.server.exec.LogAndCheckHealth] Starting 25th build in daemon [uptime: 31 mins 55.169 secs, performance: 100%]
15:52:56.159 [DEBUG] [org.gradle.launcher.daemon.server.exec.ExecuteBuild] The daemon has started executing the build.
15:52:56.159 [DEBUG] [org.gradle.launcher.daemon.server.exec.ExecuteBuild] Executing build with daemon context: DefaultDaemonContext[uid=f98190ed-c5cf-4737-8eec-bbc9af1423ac,javaHome=C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2019.2.3\jbr,daemonRegistryDir=C:\Users\admin.gradle\daemon,pid=10076,idleTimeout=10800000,priority=NORMAL,daemonOpts=--add-opens,java.base/java.util=ALL-UNNAMED,--add-opens,java.base/java.lang=ALL-UNNAMED,--add-opens,java.base/java.lang.invoke=ALL-UNNAMED,--add-opens,java.prefs/java.util.prefs=ALL-UNNAMED,-XX:MaxMetaspaceSize=256m,-XX:+HeapDumpOnOutOfMemoryError,-Xmx512m,-Dfile.encoding=windows-1251,-Duser.country=RU,-Duser.language=ru,-Duser.variant]
15:52:56.160 [INFO] [org.gradle.internal.work.DefaultWorkerLeaseService] Using 2 worker leases.
15:52:56.165 [DEBUG] [org.gradle.cache.internal.DefaultCacheAccess] Creating new cache for fileHashes, path E:\prj\school\someprj.gradle\5.2.1\fileHashes\fileHashes.bin, access org.gradle.cache.internal.DefaultCacheAccess@1a33c3b7
15:52:56.165 [DEBUG] [org.gradle.cache.internal.LockOnDemandCrossProcessCacheAccess] Acquiring file lock for file hash cache (E:\prj\school\someprj.gradle\5.2.1\fileHashes)
15:52:56.165 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire exclusive lock on file hash cache (E:\prj\school\someprj.gradle\5.2.1\fileHashes).
15:52:56.174 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Lock acquired on file hash cache (E:\prj\school\someprj.gradle\5.2.1\fileHashes).
15:52:56.178 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.182 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Run build' started
15:52:56.196 [DEBUG] [org.gradle.internal.work.DefaultWorkerLeaseService] Worker lease root.1 started (1 worker(s) in use).
15:52:56.196 [DEBUG] [org.gradle.internal.resources.AbstractTrackedResourceLock] Daemon worker Thread 7: acquired lock on root.1
15:52:56.196 [INFO] [org.gradle.internal.buildevents.BuildLogger] Starting Build
15:52:56.196 [DEBUG] [org.gradle.internal.buildevents.BuildLogger] Gradle user home: C:\Users\admin.gradle
15:52:56.196 [DEBUG] [org.gradle.internal.buildevents.BuildLogger] Current dir: E:\prj\school\someprj
15:52:56.196 [DEBUG] [org.gradle.internal.buildevents.BuildLogger] Settings file: null
15:52:56.196 [DEBUG] [org.gradle.internal.buildevents.BuildLogger] Build file: null
15:52:56.196 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.202 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Load build' started
15:52:56.203 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.203 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Run init scripts' started
15:52:56.204 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.204 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Apply script ijinit.gradle to build' started
15:52:56.212 [DEBUG] [org.gradle.cache.internal.DefaultCacheAccess] Creating new cache for workingDirs, path E:\prj\school\someprj.gradle\5.2.1\vcsMetadata-1\workingDirs.bin, access org.gradle.cache.internal.DefaultCacheAccess@3f69a5c3
15:52:56.278 [DEBUG] [org.gradle.cache.internal.DefaultCacheAccess] Creating new cache for md-supplier, path C:\Users\admin.gradle\caches\5.2.1\md-supplier\md-supplier.bin, access org.gradle.cache.internal.DefaultCacheAccess@181b22d
15:52:56.279 [DEBUG] [org.gradle.cache.internal.LockOnDemandCrossProcessCacheAccess] Acquiring file lock for cache directory md-supplier (C:\Users\admin.gradle\caches\5.2.1\md-supplier)
15:52:56.279 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire exclusive lock on cache directory md-supplier (C:\Users\admin.gradle\caches\5.2.1\md-supplier).
15:52:56.286 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Lock acquired on cache directory md-supplier (C:\Users\admin.gradle\caches\5.2.1\md-supplier).
15:52:56.287 [DEBUG] [org.gradle.api.internal.artifacts.mvnsettings.DefaultLocalMavenRepositoryLocator] No local repository in Settings file defined. Using default path: C:\Users\admin.m2\repository
15:52:56.293 [DEBUG] [org.gradle.cache.internal.DefaultCacheAccess] Creating new cache for md-rule, path C:\Users\admin.gradle\caches\5.2.1\md-rule\md-rule.bin, access org.gradle.cache.internal.DefaultCacheAccess@8ccc2fc
15:52:56.294 [DEBUG] [org.gradle.cache.internal.LockOnDemandCrossProcessCacheAccess] Acquiring file lock for cache directory md-rule (C:\Users\admin.gradle\caches\5.2.1\md-rule)
15:52:56.294 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire exclusive lock on cache directory md-rule (C:\Users\admin.gradle\caches\5.2.1\md-rule).
15:52:56.299 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Lock acquired on cache directory md-rule (C:\Users\admin.gradle\caches\5.2.1\md-rule).
15:52:56.301 [DEBUG] [org.gradle.internal.locking.LockFileReaderWriter] Lockfiles root: null
15:52:56.303 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.303 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Resolve dependencies of classpath' started
15:52:56.331 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.resolveengine.DefaultArtifactDependencyResolver] Resolving configuration 'classpath'
15:52:56.332 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.resolveengine.graph.builder.DependencyGraphBuilder] Visiting configuration unspecified:unspecified:unspecified(classpath).
15:52:56.336 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.resolveengine.oldresult.TransientConfigurationResultsBuilder] Flushing resolved configuration data in Binary store in C:\Users\admin\AppData\Local\Temp\gradle13799229078254788958.bin. Wrote root 2.
15:52:56.350 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Completing Build operation 'Resolve dependencies of classpath'
15:52:56.351 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.351 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Resolve dependencies of classpath' completed
15:52:56.351 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.352 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Resolve files of classpath' started
15:52:56.356 [DEBUG] [org.gradle.internal.component.model.ComponentAttributeMatcher] Selected match kapt3-idea.jar from candidates [kapt3-idea.jar] for {org.gradle.usage=java-runtime}
15:52:56.356 [DEBUG] [org.gradle.internal.component.model.ComponentAttributeMatcher] Selected match external-system-rt.jar from candidates [external-system-rt.jar] for {org.gradle.usage=java-runtime}
15:52:56.356 [DEBUG] [org.gradle.internal.component.model.ComponentAttributeMatcher] Selected match kotlin-gradle-tooling.jar from candidates [kotlin-gradle-tooling.jar] for {org.gradle.usage=java-runtime}
15:52:56.356 [DEBUG] [org.gradle.internal.component.model.ComponentAttributeMatcher] Selected match groovy-all-2.4.17.jar from candidates [groovy-all-2.4.17.jar] for {org.gradle.usage=java-runtime}
15:52:56.356 [DEBUG] [org.gradle.internal.component.model.ComponentAttributeMatcher] Selected match ion-java-1.5.0-1.jar from candidates [ion-java-1.5.0-1.jar] for {org.gradle.usage=java-runtime}
15:52:56.356 [DEBUG] [org.gradle.internal.component.model.ComponentAttributeMatcher] Selected match kotlin-stdlib-1.3.31.jar from candidates [kotlin-stdlib-1.3.31.jar] for {org.gradle.usage=java-runtime}
15:52:56.357 [DEBUG] [org.gradle.internal.component.model.ComponentAttributeMatcher] Selected match gradle-tooling-extension-api.jar from candidates [gradle-tooling-extension-api.jar] for {org.gradle.usage=java-runtime}
15:52:56.357 [DEBUG] [org.gradle.internal.component.model.ComponentAttributeMatcher] Selected match gradle-tooling-extension-impl.jar from candidates [gradle-tooling-extension-impl.jar] for {org.gradle.usage=java-runtime}
15:52:56.357 [DEBUG] [org.gradle.internal.component.model.ComponentAttributeMatcher] Selected match util.jar from candidates [util.jar] for {org.gradle.usage=java-runtime}
15:52:56.357 [DEBUG] [org.gradle.internal.component.model.ComponentAttributeMatcher] Selected match noarg-ide-plugin.jar from candidates [noarg-ide-plugin.jar] for {org.gradle.usage=java-runtime}
15:52:56.357 [DEBUG] [org.gradle.internal.component.model.ComponentAttributeMatcher] Selected match sam-with-receiver-ide-plugin.jar from candidates [sam-with-receiver-ide-plugin.jar] for {org.gradle.usage=java-runtime}
15:52:56.357 [DEBUG] [org.gradle.internal.component.model.ComponentAttributeMatcher] Selected match gson-2.8.5.jar from candidates [gson-2.8.5.jar] for {org.gradle.usage=java-runtime}
15:52:56.357 [DEBUG] [org.gradle.internal.component.model.ComponentAttributeMatcher] Selected match gradle-api-impldep-5.2.1-sp1.jar from candidates [gradle-api-impldep-5.2.1-sp1.jar] for {org.gradle.usage=java-runtime}
15:52:56.357 [DEBUG] [org.gradle.internal.component.model.ComponentAttributeMatcher] Selected match trove4j.jar from candidates [trove4j.jar] for {org.gradle.usage=java-runtime}
15:52:56.357 [DEBUG] [org.gradle.internal.component.model.ComponentAttributeMatcher] Selected match kotlin-plugin.jar from candidates [kotlin-plugin.jar] for {org.gradle.usage=java-runtime}
15:52:56.358 [DEBUG] [org.gradle.internal.component.model.ComponentAttributeMatcher] Selected match allopen-ide-plugin.jar from candidates [allopen-ide-plugin.jar] for {org.gradle.usage=java-runtime}
15:52:56.358 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Completing Build operation 'Resolve files of classpath'
15:52:56.358 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.358 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Resolve files of classpath' completed
15:52:56.358 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.359 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Resolve files of classpath' started
15:52:56.359 [DEBUG] [org.gradle.internal.component.model.ComponentAttributeMatcher] Selected match kapt3-idea.jar from candidates [kapt3-idea.jar] for {org.gradle.usage=java-runtime}
15:52:56.359 [DEBUG] [org.gradle.internal.component.model.ComponentAttributeMatcher] Selected match external-system-rt.jar from candidates [external-system-rt.jar] for {org.gradle.usage=java-runtime}
15:52:56.359 [DEBUG] [org.gradle.internal.component.model.ComponentAttributeMatcher] Selected match kotlin-gradle-tooling.jar from candidates [kotlin-gradle-tooling.jar] for {org.gradle.usage=java-runtime}
15:52:56.360 [DEBUG] [org.gradle.internal.component.model.ComponentAttributeMatcher] Selected match groovy-all-2.4.17.jar from candidates [groovy-all-2.4.17.jar] for {org.gradle.usage=java-runtime}
15:52:56.360 [DEBUG] [org.gradle.internal.component.model.ComponentAttributeMatcher] Selected match ion-java-1.5.0-1.jar from candidates [ion-java-1.5.0-1.jar] for {org.gradle.usage=java-runtime}
15:52:56.365 [DEBUG] [org.gradle.internal.component.model.ComponentAttributeMatcher] Selected match kotlin-stdlib-1.3.31.jar from candidates [kotlin-stdlib-1.3.31.jar] for {org.gradle.usage=java-runtime}
15:52:56.365 [DEBUG] [org.gradle.internal.component.model.ComponentAttributeMatcher] Selected match gradle-tooling-extension-api.jar from candidates [gradle-tooling-extension-api.jar] for {org.gradle.usage=java-runtime}
15:52:56.366 [DEBUG] [org.gradle.internal.component.model.ComponentAttributeMatcher] Selected match gradle-tooling-extension-impl.jar from candidates [gradle-tooling-extension-impl.jar] for {org.gradle.usage=java-runtime}
15:52:56.366 [DEBUG] [org.gradle.internal.component.model.ComponentAttributeMatcher] Selected match util.jar from candidates [util.jar] for {org.gradle.usage=java-runtime}
15:52:56.366 [DEBUG] [org.gradle.internal.component.model.ComponentAttributeMatcher] Selected match noarg-ide-plugin.jar from candidates [noarg-ide-plugin.jar] for {org.gradle.usage=java-runtime}
15:52:56.366 [DEBUG] [org.gradle.internal.component.model.ComponentAttributeMatcher] Selected match sam-with-receiver-ide-plugin.jar from candidates [sam-with-receiver-ide-plugin.jar] for {org.gradle.usage=java-runtime}
15:52:56.366 [DEBUG] [org.gradle.internal.component.model.ComponentAttributeMatcher] Selected match gson-2.8.5.jar from candidates [gson-2.8.5.jar] for {org.gradle.usage=java-runtime}
15:52:56.367 [DEBUG] [org.gradle.internal.component.model.ComponentAttributeMatcher] Selected match gradle-api-impldep-5.2.1-sp1.jar from candidates [gradle-api-impldep-5.2.1-sp1.jar] for {org.gradle.usage=java-runtime}
15:52:56.367 [DEBUG] [org.gradle.internal.component.model.ComponentAttributeMatcher] Selected match trove4j.jar from candidates [trove4j.jar] for {org.gradle.usage=java-runtime}
15:52:56.367 [DEBUG] [org.gradle.internal.component.model.ComponentAttributeMatcher] Selected match kotlin-plugin.jar from candidates [kotlin-plugin.jar] for {org.gradle.usage=java-runtime}
15:52:56.367 [DEBUG] [org.gradle.internal.component.model.ComponentAttributeMatcher] Selected match allopen-ide-plugin.jar from candidates [allopen-ide-plugin.jar] for {org.gradle.usage=java-runtime}
15:52:56.367 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Completing Build operation 'Resolve files of classpath'
15:52:56.367 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.368 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Resolve files of classpath' completed
15:52:56.536 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.536 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Apply plugin JetGradlePlugin to build' started
15:52:56.540 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Completing Build operation 'Apply plugin JetGradlePlugin to build'
15:52:56.540 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.540 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Apply plugin JetGradlePlugin to build' completed
15:52:56.540 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Completing Build operation 'Apply script ijinit.gradle to build'
15:52:56.541 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.541 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Apply script ijinit.gradle to build' completed
15:52:56.541 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Completing Build operation 'Run init scripts'
15:52:56.541 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.541 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Run init scripts' completed
15:52:56.542 [DEBUG] [org.gradle.initialization.buildsrc.BuildSourceBuilder] Gradle source dir does not exist. We leave.
15:52:56.543 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.543 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Evaluate settings' started
15:52:56.543 [DEBUG] [org.gradle.initialization.DefaultGradlePropertiesLoader] Found env project properties: []
15:52:56.543 [DEBUG] [org.gradle.initialization.DefaultGradlePropertiesLoader] Found system project properties: []
15:52:56.544 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.544 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Apply script settings.gradle to settings 'someprj'' started
15:52:56.546 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Completing Build operation 'Apply script settings.gradle to settings 'someprj''
15:52:56.546 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.546 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Apply script settings.gradle to settings 'someprj'' completed
15:52:56.546 [DEBUG] [org.gradle.initialization.ScriptEvaluatingSettingsProcessor] Timing: Processing settings took: 0.003 secs
15:52:56.547 [INFO] [org.gradle.internal.buildevents.BuildLogger] Settings evaluated using settings file 'E:\prj\school\someprj\settings.gradle'.
15:52:56.547 [DEBUG] [org.gradle.caching.configuration.internal.DefaultBuildCacheConfiguration] Found class org.gradle.caching.local.internal.DirectoryBuildCacheServiceFactory registered for class org.gradle.caching.local.DirectoryBuildCache
15:52:56.547 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.547 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Finalize build cache configuration' started
15:52:56.547 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Completing Build operation 'Finalize build cache configuration'
15:52:56.548 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.548 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Finalize build cache configuration' completed
15:52:56.548 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Completing Build operation 'Evaluate settings'
15:52:56.548 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.548 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Evaluate settings' completed
15:52:56.548 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Completing Build operation 'Load build'
15:52:56.549 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.549 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Load build' completed
15:52:56.549 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.549 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Configure build' started
15:52:56.549 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.549 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Load projects' started
15:52:56.550 [DEBUG] [org.gradle.model.internal.registry.DefaultModelRegistry] Project : - Transitioning model element '' from state Registered to Created
15:52:56.550 [DEBUG] [org.gradle.model.internal.registry.DefaultModelRegistry] Project : - Transitioning model element '' to state Discovered.
15:52:56.551 [DEBUG] [org.gradle.model.internal.registry.DefaultModelRegistry] Project : - Transitioning model element '' to state Created.
15:52:56.552 [DEBUG] [org.gradle.initialization.ProjectPropertySettingBuildLoader] Looking for project properties from: E:\prj\school\someprj\gradle.properties
15:52:56.552 [DEBUG] [org.gradle.initialization.ProjectPropertySettingBuildLoader] project property file does not exists. We continue!
15:52:56.552 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Completing Build operation 'Load projects'
15:52:56.552 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.553 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Load projects' completed
15:52:56.553 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.553 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Notify projectsLoaded listeners' started
15:52:56.553 [INFO] [org.gradle.internal.buildevents.BuildLogger] Projects loaded. Root project using build file 'E:\prj\school\someprj\build.gradle'.
15:52:56.553 [INFO] [org.gradle.internal.buildevents.BuildLogger] Included projects: [root project 'someprj']
15:52:56.553 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.554 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Execute 'rootProject {}' action' started
15:52:56.557 [DEBUG] [org.gradle.internal.resources.AbstractTrackedResourceLock] Daemon worker Thread 7: acquired lock on :
15:52:56.557 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.557 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Cross-configure project :' started
15:52:56.557 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Completing Build operation 'Cross-configure project :'
15:52:56.557 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.558 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Cross-configure project :' completed
15:52:56.558 [DEBUG] [org.gradle.internal.resources.AbstractTrackedResourceLock] Daemon worker Thread 7: released lock on :
15:52:56.558 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Completing Build operation 'Execute 'rootProject {}' action'
15:52:56.558 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.558 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Execute 'rootProject {}' action' completed
15:52:56.558 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Completing Build operation 'Notify projectsLoaded listeners'
15:52:56.558 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.559 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Notify projectsLoaded listeners' completed
15:52:56.559 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.560 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.561 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.561 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.562 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.563 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.564 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.565 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.565 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.581 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.582 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.583 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.583 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.584 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.585 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.585 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.586 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.586 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.586 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.587 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.587 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.588 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.588 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.588 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.589 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.590 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.590 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.590 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.591 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.591 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.591 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.591 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.592 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.593 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.593 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.594 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.597 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.600 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.731 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 234: received class org.gradle.launcher.daemon.protocol.CloseInput
15:52:56.731 [DEBUG] [org.gradle.launcher.daemon.server.DefaultDaemonConnection] thread 234: Received IO message from client: org.gradle.launcher.daemon.protocol.CloseInput@2d5ee6e9
15:52:56.733 [INFO] [org.gradle.launcher.daemon.server.exec.ForwardClientInput] Closing daemon's stdin at end of input.
15:52:56.733 [INFO] [org.gradle.launcher.daemon.server.exec.ForwardClientInput] The daemon will no longer process any standard input.
15:52:56.851 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.997 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:57.000 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:57.002 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:57.002 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:57.003 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:57.004 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:56.559 [LIFECYCLE] [org.gradle.internal.logging.progress.ProgressLoggerFactory]
15:52:56.559 [LIFECYCLE] [org.gradle.internal.logging.progress.ProgressLoggerFactory] > Configure project :
15:52:56.560 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Configure project :' started
15:52:56.560 [DEBUG] [org.gradle.internal.resources.AbstractTrackedResourceLock] Daemon worker Thread 7: acquired lock on :
15:52:56.560 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Notify beforeEvaluate listeners of :' started
15:52:56.561 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Execute Gradle.addProjectEvaluationListener listener' started
15:52:56.561 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Completing Build operation 'Execute Gradle.addProjectEvaluationListener listener'
15:52:56.562 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Execute Gradle.addProjectEvaluationListener listener' completed
15:52:56.562 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Completing Build operation 'Notify beforeEvaluate listeners of :'
15:52:56.562 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Notify beforeEvaluate listeners of :' completed
15:52:56.563 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Apply plugin org.gradle.build-init to root project 'someprj'' started
15:52:56.564 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Register task :init' started
15:52:56.564 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Completing Build operation 'Register task :init'
15:52:56.565 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Register task :init' completed
15:52:56.565 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Completing Build operation 'Apply plugin org.gradle.build-init to root project 'someprj''
15:52:56.565 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Apply plugin org.gradle.build-init to root project 'someprj'' completed
15:52:56.582 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Apply plugin org.gradle.wrapper to root project 'someprj'' started
15:52:56.582 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Register task :wrapper' started
15:52:56.583 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Completing Build operation 'Register task :wrapper'
15:52:56.583 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Register task :wrapper' completed
15:52:56.583 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Completing Build operation 'Apply plugin org.gradle.wrapper to root project 'someprj''
15:52:56.583 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Apply plugin org.gradle.wrapper to root project 'someprj'' completed
15:52:56.585 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Apply plugin org.gradle.help-tasks to root project 'someprj'' started
15:52:56.585 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Register task :help' started
15:52:56.585 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Completing Build operation 'Register task :help'
15:52:56.586 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Register task :help' completed
15:52:56.586 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Register task :projects' started
15:52:56.586 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Completing Build operation 'Register task :projects'
15:52:56.586 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Register task :projects' completed
15:52:56.586 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Register task :tasks' started
15:52:56.587 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Completing Build operation 'Register task :tasks'
15:52:56.587 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Register task :tasks' completed
15:52:56.587 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Register task :properties' started
15:52:56.588 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Completing Build operation 'Register task :properties'
15:52:56.588 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Register task :properties' completed
15:52:56.588 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Register task :dependencyInsight' started
15:52:56.588 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Completing Build operation 'Register task :dependencyInsight'
15:52:56.588 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Register task :dependencyInsight' completed
15:52:56.589 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Register task :dependencies' started
15:52:56.590 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Completing Build operation 'Register task :dependencies'
15:52:56.590 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Register task :dependencies' completed
15:52:56.590 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Register task :buildEnvironment' started
15:52:56.590 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Completing Build operation 'Register task :buildEnvironment'
15:52:56.590 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Register task :buildEnvironment' completed
15:52:56.591 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Register task :components' started
15:52:56.591 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Completing Build operation 'Register task :components'
15:52:56.591 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Register task :components' completed
15:52:56.591 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Register task :model' started
15:52:56.591 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Completing Build operation 'Register task :model'
15:52:56.592 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Register task :model' completed
15:52:56.592 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Register task :dependentComponents' started
15:52:56.592 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Completing Build operation 'Register task :dependentComponents'
15:52:56.593 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Register task :dependentComponents' completed
15:52:56.593 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Completing Build operation 'Apply plugin org.gradle.help-tasks to root project 'someprj''
15:52:56.593 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Apply plugin org.gradle.help-tasks to root project 'someprj'' completed
15:52:56.593 [INFO] [org.gradle.configuration.project.BuildScriptProcessor] Evaluating root project 'someprj' using build file 'E:\prj\school\someprj\build.gradle'.
15:52:56.594 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Apply script build.gradle to root project 'someprj'' started
15:52:56.596 [DEBUG] [org.gradle.internal.locking.LockFileReaderWriter] Lockfiles root: E:\prj\school\someprj\gradle\dependency-locks
15:52:56.597 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Resolve dependencies of detachedConfiguration1' started
15:52:56.598 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.resolveengine.DefaultArtifactDependencyResolver] Resolving configuration 'detachedConfiguration1'
15:52:56.598 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.modulecache.ResolvedArtifactCaches] Creating new in-memory cache for repo 'Gradle Central Plugin Repository' [da9e8315a8be71135c1df434dd1d5d54].
15:52:56.599 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.resolveengine.graph.builder.DependencyGraphBuilder] Visiting configuration unspecified:unspecified:unspecified(detachedConfiguration1).
15:52:56.599 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.ivyresolve.RepositoryChainComponentMetaDataResolver] Attempting to resolve component for org.openjfx.javafxplugin:org.openjfx.javafxplugin.gradle.plugin:0.0.8 using repositories [Gradle Central Plugin Repository]
15:52:56.599 [DEBUG] [org.gradle.api.internal.artifacts.repositories.resolver.DefaultExternalResourceArtifactResolver] Loading https://plugins.gradle.org/m2/org/openjfx/javafxplugin/org.openjfx.javafxplugin.gradle.plugin/0.0.8/org.openjfx.javafxplugin.gradle.plugin-0.0.8.pom
15:52:56.600 [DEBUG] [org.gradle.internal.resource.transfer.DefaultCacheAwareExternalResourceAccessor] Constructing external resource: https://plugins.gradle.org/m2/org/openjfx/javafxplugin/org.openjfx.javafxplugin.gradle.plugin/0.0.8/org.openjfx.javafxplugin.gradle.plugin-0.0.8.pom
15:52:56.600 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Download https://plugins.gradle.org/m2/org/openjfx/javafxplugin/org.openjfx.javafxplugin.gradle.plugin/0.0.8/org.openjfx.javafxplugin.gradle.plugin-0.0.8.pom' started
15:52:56.601 [DEBUG] [org.gradle.internal.resource.transport.http.HttpResourceAccessor] Constructing external resource: https://plugins.gradle.org/m2/org/openjfx/javafxplugin/org.openjfx.javafxplugin.gradle.plugin/0.0.8/org.openjfx.javafxplugin.gradle.plugin-0.0.8.pom
15:52:56.601 [DEBUG] [org.gradle.internal.resource.transport.http.HttpClientHelper] Performing HTTP GET: https://plugins.gradle.org/m2/org/openjfx/javafxplugin/org.openjfx.javafxplugin.gradle.plugin/0.0.8/org.openjfx.javafxplugin.gradle.plugin-0.0.8.pom
15:52:56.601 [DEBUG] [org.apache.http.client.protocol.RequestAddCookies] CookieSpec selected: default
15:52:56.603 [DEBUG] [org.apache.http.client.protocol.RequestAuthCache] Auth cache not set in the context
15:52:56.604 [DEBUG] [org.apache.http.impl.conn.PoolingHttpClientConnectionManager] Connection request: [route: {s}->https://plugins.gradle.org:443][total kept alive: 0; route allocated: 0 of 20; total allocated: 0 of 20]
15:52:56.605 [DEBUG] [org.apache.http.impl.conn.PoolingHttpClientConnectionManager] Connection leased: [id: 24][route: {s}->https://plugins.gradle.org:443][total kept alive: 0; route allocated: 1 of 20; total allocated: 1 of 20]
15:52:56.605 [DEBUG] [org.apache.http.impl.execchain.MainClientExec] Opening connection {s}->https://plugins.gradle.org:443
15:52:56.605 [DEBUG] [org.apache.http.impl.conn.DefaultHttpClientConnectionOperator] Connecting to plugins.gradle.org/104.18.191.9:443
15:52:56.606 [DEBUG] [org.apache.http.conn.ssl.SSLConnectionSocketFactory] Connecting socket to plugins.gradle.org/104.18.191.9:443 with timeout 30000
15:52:56.702 [DEBUG] [org.apache.http.conn.ssl.SSLConnectionSocketFactory] Enabled protocols: [TLSv1.3, TLSv1.2, TLSv1.1, TLSv1]
15:52:56.702 [DEBUG] [org.apache.http.conn.ssl.SSLConnectionSocketFactory] Enabled cipher suites:[TLS_AES_128_GCM_SHA256, TLS_AES_256_GCM_SHA384, TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, TLS_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384, TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384, TLS_DHE_RSA_WITH_AES_256_GCM_SHA384, TLS_DHE_DSS_WITH_AES_256_GCM_SHA384, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256, TLS_DHE_RSA_WITH_AES_128_GCM_SHA256, TLS_DHE_DSS_WITH_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384, TLS_RSA_WITH_AES_256_CBC_SHA256, TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384, TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384, TLS_DHE_RSA_WITH_AES_256_CBC_SHA256, TLS_DHE_DSS_WITH_AES_256_CBC_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_256_CBC_SHA, TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDH_RSA_WITH_AES_256_CBC_SHA, TLS_DHE_RSA_WITH_AES_256_CBC_SHA, TLS_DHE_DSS_WITH_AES_256_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, TLS_RSA_WITH_AES_128_CBC_SHA256, TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256, TLS_DHE_RSA_WITH_AES_128_CBC_SHA256, TLS_DHE_DSS_WITH_AES_128_CBC_SHA256, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDH_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_DSS_WITH_AES_128_CBC_SHA, TLS_EMPTY_RENEGOTIATION_INFO_SCSV]
15:52:56.702 [DEBUG] [org.apache.http.conn.ssl.SSLConnectionSocketFactory] Starting handshake
15:52:56.826 [DEBUG] [org.apache.http.impl.conn.DefaultManagedHttpClientConnection] http-outgoing-24: Shutdown connection
15:52:56.826 [DEBUG] [org.apache.http.impl.execchain.MainClientExec] Connection discarded
15:52:56.826 [DEBUG] [org.apache.http.impl.conn.PoolingHttpClientConnectionManager] Connection released: [id: 24][route: {s}->https://plugins.gradle.org:443][total kept alive: 0; route allocated: 0 of 20; total allocated: 0 of 20]
15:52:56.826 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Completing Build operation 'Download https://plugins.gradle.org/m2/org/openjfx/javafxplugin/org.openjfx.javafxplugin.gradle.plugin/0.0.8/org.openjfx.javafxplugin.gradle.plugin-0.0.8.pom'
15:52:56.830 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Download https://plugins.gradle.org/m2/org/openjfx/javafxplugin/org.openjfx.javafxplugin.gradle.plugin/0.0.8/org.openjfx.javafxplugin.gradle.plugin-0.0.8.pom' completed
15:52:56.831 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.resolveengine.oldresult.TransientConfigurationResultsBuilder] Flushing resolved configuration data in Binary store in C:\Users\admin\AppData\Local\Temp\gradle13799229078254788958.bin. Wrote root 2.
15:52:56.997 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Completing Build operation 'Resolve dependencies of detachedConfiguration1'
15:52:56.998 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Resolve dependencies of detachedConfiguration1' completed
15:52:56.998 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Completing Build operation 'Apply script build.gradle to root project 'someprj''
15:52:57.001 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Apply script build.gradle to root project 'someprj'' completed
15:52:57.002 [DEBUG] [org.gradle.configuration.project.BuildScriptProcessor] Timing: Running the build script took 0.408 secs
15:52:57.002 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Notify afterEvaluate listeners of :' started
15:52:57.003 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Execute Gradle.addProjectEvaluationListener listener' started
15:52:57.003 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Completing Build operation 'Execute Gradle.addProjectEvaluationListener listener'
15:52:57.004 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Execute Gradle.addProjectEvaluationListener listener' completed
15:52:57.004 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Completing Build operation 'Notify afterEvaluate listeners of :'
15:52:57.004 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Notify afterEvaluate listeners of :' completed
15:52:57.004 [DEBUG] [org.gradle.internal.resources.AbstractTrackedResourceLock] Daemon worker Thread 7: released lock on :
15:52:57.005 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Completing Build operation 'Configure project :'
15:52:57.014 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:57.016 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Configure project :' completed
15:52:57.016 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Completing Build operation 'Configure build'
15:52:57.017 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:57.021 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Configure build' completed
15:52:57.022 [DEBUG] [org.gradle.internal.work.DefaultWorkerLeaseService] Worker lease root.1 completed (0 worker(s) in use)
15:52:57.022 [DEBUG] [org.gradle.internal.resources.AbstractTrackedResourceLock] Daemon worker Thread 7: released lock on root.1
15:52:57.024 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]
15:52:57.024 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] FAILURE: Build failed with an exception.
15:52:57.024 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]
15:52:57.024 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] * Where:
15:52:57.025 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] Build file 'E:\prj\school\someprj\build.gradle' line: 3
15:52:57.025 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]
15:52:57.025 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] * What went wrong:
15:52:57.025 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] Plugin [id: 'org.openjfx.javafxplugin', version: '0.0.8'] was not found in any of the following sources:
15:52:57.025 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]
15:52:57.033 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] - Gradle Core Plugins (plugin is not in 'org.gradle' namespace)
15:52:57.033 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] - Plugin Repositories (could not resolve plugin artifact 'org.openjfx.javafxplugin:org.openjfx.javafxplugin.gradle.plugin:0.0.8')
15:52:57.033 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] Searched in the following repositories:
15:52:57.033 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] Gradle Central Plugin Repository
15:52:57.033 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]
15:52:57.033 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] * Try:
15:52:57.033 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] Run with --stacktrace option to get the stack trace. Run with --scan to get full insights.
15:52:57.034 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]
15:52:57.034 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] * Get more help at https://help.gradle.org
15:52:57.034 [ERROR] [org.gradle.internal.buildevents.BuildResultLogger]
15:52:57.034 [ERROR] [org.gradle.internal.buildevents.BuildResultLogger] CONFIGURE FAILED in 0s
15:52:57.034 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Completing Build operation 'Run build'
15:52:57.036 [DEBUG] [org.gradle.launcher.daemon.server.SynchronizedDispatchConnection] thread 238: dispatching class org.gradle.launcher.daemon.protocol.BuildEvent
15:52:57.040 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationExecutor] Build operation 'Run build' completed
15:52:57.053 [DEBUG] [org.gradle.cache.internal.LockOnDemandCrossProcessCacheAccess] Releasing file lock for cache directory md-supplier (C:\Users\admin.gradle\caches\5.2.1\md-supplier)
15:52:57.053 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on cache directory md-supplier (C:\Users\admin.gradle\caches\5.2.1\md-supplier).
15:52:57.059 [DEBUG] [org.gradle.cache.internal.LockOnDemandCrossProcessCacheAccess] Releasing file lock for cache directory md-rule (C:\Users\admin.gradle\caches\5.2.1\md-rule)
15:52:57.059 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on cache directory md-rule (C:\Users\admin.gradle\caches\5.2.1\md-rule).
15:52:57.064 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.resolveengine.store.CachedStoreFactory] Resolution result cache closed. Cache reads: 0, disk reads: 0 (avg: 0.0 secs, total: 0.0 secs)
15:52:57.065 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.resolveengine.store.CachedStoreFactory] Resolution result cache closed. Cache reads: 0, disk reads: 0 (avg: 0.0 secs, total: 0.0 secs)
15:52:57.065 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.resolveengine.store.ResolutionResultsStoreFactory] Deleted 2 resolution results binary files in 0.004 secs
15:52:57.065 [DEBUG] [org.gradle.deployment.internal.DefaultDeploymentRegistry] Stopping 0 deployment handles
15:52:57.065 [DEBUG] [org.gradle.deployment.internal.DefaultDeploymentRegistry] Stopped deployment handles
15:52:57.066 [DEBUG] [org.gradle.cache.internal.LockOnDemandCrossProcessCacheAccess] Releasing file lock for file hash cache (E:\prj\school\someprj.gradle\5.2.1\fileHashes)
15:52:57.066 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on file hash cache (E:\prj\school\someprj.gradle\5.2.1\fileHashes).
15:52:57.068 [DEBUG] [org.gradle.cache.internal.DefaultPersistentDirectoryStore] VCS Checkout Cache (E:\prj\school\someprj.gradle\vcs-1) has last been fully cleaned up 0 hours ago
15:52:57.068 [DEBUG] [org.gradle.cache.internal.DefaultCacheAccess] Cache VCS Checkout Cache (E:\prj\school\someprj.gradle\vcs-1) was closed 0 times.
15:52:57.068 [DEBUG] [org.gradle.cache.internal.DefaultCacheAccess] Cache VCS metadata (E:\prj\school\someprj.gradle\5.2.1\vcsMetadata-1) was closed 0 times.
15:52:57.073 [DEBUG] [org.gradle.launcher.daemon.server.exec.ExecuteBuild] The daemon has finished executing the build.
Currently users must manually download JavaFX jmods and set the path.to.fx.mods
property. It would be nice if the plugin could do this automatically.
Also why can't the jmods files be placed in Maven Central?
All dependencies declared via the following block are added as implementation
:
javafx {
modules 'javafx.graphics'
}
There should be a way to declare these dependencies as api
as well.
Currently, it is only possible to add JavaFx dependency as implementation
(as already reported by #29 and #11)
There should also be a way to declare the dependency as compileOnly
.
With such type of dependency, one could write a library using JavaFX and still publish artifacts not specific to a platform without encountering this kind of problem: #18.
The Java Module Plugin version 1.6.0 introduced some refactoring (see gradle-modules-plugin Issue 80) that causes java.lang.ClassNotFoundException: org.javamodularity.moduleplugin.tasks.ModuleOptions
-- see this CI build log example.
Gradle is rather slow. So it can be preferable to use the IntelliJ build and run system when possible, which is better integrated and less visually noisy. Unfortunately this doesn't work when using the Gradle build system - I get this exception which suggests some module system problem:
Caused by: java.lang.IllegalAccessError: superclass access check failed: class com.sun.javafx.scene.control.ControlHelper (in unnamed module @0x182efd96) cannot access class com.sun.javafx.scene.layout.RegionHelper (in module javafx.graphics) because module javafx.graphics does not export com.sun.javafx.scene.layout to unnamed module @0x182efd96
at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016)
at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)
at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:802)
at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:700)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:623)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
at javafx.scene.control.Control.<clinit>(Control.java:86)
The command used to start the app is
/Library/Java/JavaVirtualMachines/jdk-11.0.1.jdk/Contents/Home/bin/java --add-modules javafx.base,javafx.graphics --add-reads javafx.base=ALL-UNNAMED --add-reads javafx.graphics=ALL-UNNAMED "-javaagent:/Users/mike/Library/Application Support/JetBrains/Toolbox/apps/IDEA-U/ch-1/193.5233.12/IntelliJ IDEA 2019.3 EAP.app/Contents/lib/idea_rt.jar=53771:/Users/mike/Library/Application Support/JetBrains/Toolbox/apps/IDEA-U/ch-1/193.5233.12/IntelliJ IDEA 2019.3 EAP.app/Contents/bin" -Dfile.encoding=UTF-8 -classpath /Users/mike/Source/Interruptions/build/classes/kotlin/main:/Users/mike/Source/Interruptions/build/resources/main:/Users/mike/.gradle/caches/modules-2/files-2.1/com.sandec.jpro/jpro-webapi/2019.1.2/69a3efb9531949d325e385bb0867ae4d576b2824/jpro-webapi-2019.1.2.jar:/Users/mike/.gradle/caches/modules-2/files-2.1/no.tornado/tornadofx/1.7.19/fdd74beea0e573461c6657f5937eb3f47a739c52/tornadofx-1.7.19.jar:/Users/mike/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jdk8/1.3.50/bf65725d4ae2cf00010d84e945fcbc201f590e11/kotlin-stdlib-jdk8-1.3.50.jar:/Users/mike/.gradle/caches/modules-2/files-2.1/io.permazen/permazen-main/4.1.5/104398bde5f53046c2f46b9ca5188a49001a0670/permazen-main-4.1.5.jar:/Users/mike/.gradle/caches/modules-2/files-2.1/io.permazen/permazen-kv-array/4.1.5/75a38a92956610a2c04f41f76dacd72b141d3935/permazen-kv-array-4.1.5.jar:/Users/mike/.gradle/caches/modules-2/files-2.1/org.openjfx/javafx-fxml/12.0.1/975a83878e6687dbf3fdb35592baa2586b658c8b/javafx-fxml-12.0.1-mac.jar:/Users/mike/.gradle/caches/modules-2/files-2.1/org.openjfx/javafx-controls/12.0.1/af23299415c0d594ea9f84b3dd3baf9b54618594/javafx-controls-12.0.1-mac.jar:/Users/mike/.gradle/caches/modules-2/files-2.1/org.openjfx/javafx-controls/12.0.1/a6502999bdb947885c8d121a47d745d52a06577a/javafx-controls-12.0.1.jar:/Users/mike/.gradle/caches/modules-2/files-2.1/org.openjfx/javafx-graphics/12.0.1/ed0b71c64a58482f659194ab087b7eeda0fc562d/javafx-graphics-12.0.1-mac.jar:/Users/mike/.gradle/caches/modules-2/files-2.1/org.openjfx/javafx-graphics/12.0.1/19ec56a15d7dd9c49112912547425b718485d7db/javafx-graphics-12.0.1.jar:/Users/mike/.gradle/caches/modules-2/files-2.1/org.openjfx/javafx-base/12.0.1/b995ca9beeb01fcddd062c54a24ff4f6aa3b2a37/javafx-base-12.0.1-mac.jar:/Users/mike/.gradle/caches/modules-2/files-2.1/org.openjfx/javafx-base/12.0.1/6abae81d00e0c6f4fde02e2666f9c0b989ff47e4/javafx-base-12.0.1.jar:/Users/mike/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jdk7/1.3.50/50ad05ea1c2595fb31b800e76db464d08d599af3/kotlin-stdlib-jdk7-1.3.50.jar:/Users/mike/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-reflect/1.3.20/cd49eec32cf964333faf59e04b4085eac7008477/kotlin-reflect-1.3.20.jar:/Users/mike/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.3.50/b529d1738c7e98bbfa36a4134039528f2ce78ebf/kotlin-stdlib-1.3.50.jar:/Users/mike/.gradle/caches/modules-2/files-2.1/org.glassfish/javax.json/1.1.2/a507518970d55e9de24665af06d70aae91b4aaa1/javax.json-1.1.2.jar:/Users/mike/.gradle/caches/modules-2/files-2.1/io.permazen/permazen-coreapi/4.1.5/10ec9e6430cc882c714b68073c89d1d05d10bc8a/permazen-coreapi-4.1.5.jar:/Users/mike/.gradle/caches/modules-2/files-2.1/io.permazen/permazen-kv-simple/4.1.5/4118955d530796a0dc7b9b3aabbe5fe90a858321/permazen-kv-simple-4.1.5.jar:/Users/mike/.gradle/caches/modules-2/files-2.1/io.permazen/permazen-kv/4.1.5/a1ead8b1282f68e4cd3f2f4add0fcf56b839f2dc/permazen-kv-4.1.5.jar:/Users/mike/.gradle/caches/modules-2/files-2.1/io.permazen/permazen-util/4.1.5/464b9ca98b60a63690d822c0f0866583665edaad/permazen-util-4.1.5.jar:/Users/mike/.gradle/caches/modules-2/files-2.1/org.dellroad/dellroad-stuff-main/2.2.2/e67634b710df0babff10a293beab63294b40ad84/dellroad-stuff-main-2.2.2.jar:/Users/mike/.gradle/caches/modules-2/files-2.1/com.google.guava/guava/24.0-jre/41ac1e74d6b4e1ea1f027139cffeb536c732a81/guava-24.0-jre.jar:/Users/mike/.gradle/caches/modules-2/files-2.1/org.hibernate.validator/hibernate-validator/6.0.7.Final/8b9d9c7ec8c73963ea0fe81912fc67711a4ef76/hibernate-validator-6.0.7.Final.jar:/Users/mike/.gradle/caches/modules-2/files-2.1/javax.validation/validation-api/2.0.1.Final/cb855558e6271b1b32e716d24cb85c7f583ce09e/validation-api-2.0.1.Final.jar:/Users/mike/.gradle/caches/modules-2/files-2.1/org.glassfish/javax.el/3.0.1-b09/2b59f1809e193aa942b8ed20efc673d9063e6a50/javax.el-3.0.1-b09.jar:/Users/mike/.gradle/caches/modules-2/files-2.1/org.slf4j/slf4j-api/1.7.25/da76ca59f6a57ee3102f8f9bd9cee742973efa8a/slf4j-api-1.7.25.jar:/Users/mike/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-common/1.3.50/3d9cd3e1bc7b92e95f43d45be3bfbcf38e36ab87/kotlin-stdlib-common-1.3.50.jar:/Users/mike/.gradle/caches/modules-2/files-2.1/org.jetbrains/annotations/13.0/919f0dfe192fb4e063e7dacadee7f8bb9a2672a9/annotations-13.0.jar:/Users/mike/.gradle/caches/modules-2/files-2.1/javax.json/javax.json-api/1.1.2/b38c52a6e180359108bd5e35dbeec7d1be45c535/javax.json-api-1.1.2.jar:/Users/mike/.gradle/caches/modules-2/files-2.1/org.slf4j/slf4j-log4j12/1.7.25/110cefe2df103412849d72ef7a67e4e91e4266b4/slf4j-log4j12-1.7.25.jar:/Users/mike/.gradle/caches/modules-2/files-2.1/commons-codec/commons-codec/1.11/3acb4705652e16236558f0f4f2192cc33c3bd189/commons-codec-1.11.jar:/Users/mike/.gradle/caches/modules-2/files-2.1/com.google.code.findbugs/jsr305/1.3.9/40719ea6961c0cb6afaeb6a921eaa1f6afd4cfdf/jsr305-1.3.9.jar:/Users/mike/.gradle/caches/modules-2/files-2.1/log4j/log4j/1.2.17/5af35056b4d257e4b64b9e8069c0746e8b08629f/log4j-1.2.17.jar:/Users/mike/.gradle/caches/modules-2/files-2.1/org.checkerframework/checker-compat-qual/2.0.0/fc89b03860d11d6213d0154a62bcd1c2f69b9efa/checker-compat-qual-2.0.0.jar:/Users/mike/.gradle/caches/modules-2/files-2.1/com.google.errorprone/error_prone_annotations/2.1.3/39b109f2cd352b2d71b52a3b5a1a9850e1dc304b/error_prone_annotations-2.1.3.jar:/Users/mike/.gradle/caches/modules-2/files-2.1/com.google.j2objc/j2objc-annotations/1.1/ed28ded51a8b1c6b112568def5f4b455e6809019/j2objc-annotations-1.1.jar:/Users/mike/.gradle/caches/modules-2/files-2.1/org.codehaus.mojo/animal-sniffer-annotations/1.14/775b7e22fb10026eed3f86e8dc556dfafe35f2d5/animal-sniffer-annotations-1.14.jar:/Users/mike/.gradle/caches/modules-2/files-2.1/org.jboss.logging/jboss-logging/3.3.0.Final/3616bb87707910296e2c195dc016287080bba5af/jboss-logging-3.3.0.Final.jar:/Users/mike/.gradle/caches/modules-2/files-2.1/com.fasterxml/classmate/1.3.1/2ad2fd09dcf5607ca96f8ef432096a96986c40a/classmate-1.3.1.jar -p /Users/mike/.gradle/caches/modules-2/files-2.1/org.openjfx/javafx-base/12.0.1/b995ca9beeb01fcddd062c54a24ff4f6aa3b2a37/javafx-base-12.0.1-mac.jar:/Users/mike/.gradle/caches/modules-2/files-2.1/org.openjfx/javafx-graphics/12.0.1/ed0b71c64a58482f659194ab087b7eeda0fc562d/javafx-graphics-12.0.1-mac.jar net.plan99.interruptions.Interruptions
It does work when started with Gradle so I'd understand if you considered this not a bug, but still ... it used to all be so easy :(
As titled, if I assemble
with the plugin:
plugins {
...
id 'org.openjfx.javafxplugin' version '0.0.8'
}
Then my classPath
is completely empty
compileJava {
inputs.property("moduleName", moduleName)
doFirst {
println("[$moduleName]classpath.asPath: $classpath.asPath") // nothing
options.compilerArgs = ['--module-path', classpath.asPath,]
classpath = files()
}
}
and then the modules are not found (JPMS)
build.gradle
and module here
This seems to be a valid workaround atm:
def currentOS = org.gradle.internal.os.OperatingSystem.current()
def platform
if (currentOS.isWindows()) {
platform = 'win'
} else if (currentOS.isLinux()) {
platform = 'linux'
} else if (currentOS.isMacOsX()) {
platform = 'mac'
}
dependencies {
compile "org.openjfx:javafx-base:11:${platform}"
compile "org.openjfx:javafx-graphics:11:${platform}"
compile "org.openjfx:javafx-controls:11:${platform}"
compile "org.openjfx:javafx-fxml:11:${platform}"
}
Can this plugin be used in a project that wants to support Java 11 with OpenJFX, but also remain compatible with older Java versions (mainly Java 8) that come with JavaFX included?
At the moment the plugin is built for Java 11 and can't be loaded at all on older Java versions (#2). Would it be possible to build the plugin with support for Java 8, and simply do nothing on Java versions before 11 (since JavaFX is already included in that case)?
I can of course manually check JavaVersion.current().java11Compatible
and not load the plugin on older Java versions, but it's not a great solution: I have to add manual if
s in multiple places, and it only works with the old buildscript
syntax (since if
s are not allowed in the new plugins
block).
Would it be possible to add support for jdk.packager.services / UserJvmOptionsService in the plugin?
The feature was available in Danny Althoff's javafx-gradle-plugin but it hasn't been updated in years.
This way configuration will look like
plugins {
id 'java'
id 'openjfx' version '0.0.5'
}
I keep getting this error in multiple circumstances, including gradle run
, and I can't do much about it.
Exception in thread "WindowsNativeRunloopThread" java.lang.NoSuchMethodError: com/sun/glass/ui/Screen.<init>(JIIIIIIIIIIIFF)V (loaded from file:/C:/Users/matth/.gradle/caches/modules-2/files-2.1/org.openjfx/javafx-graphics/12.0.1/18a01ffdd4edb82e7da3bc99937c6a608d1eaaa6/javafx-graphics-12.0.1-win.jar by jdk.internal.loader.ClassLoaders$AppClassLoader@b3361661) called from class com.sun.glass.ui.win.WinApplication (loaded from file:/C:/Users/matth/.gradle/caches/modules-2/files-2.1/org.openjfx/javafx-graphics/12.0.1/18a01ffdd4edb82e7da3bc99937c6a608d1eaaa6/javafx-graphics-12.0.1-win.jar by jdk.internal.loader.ClassLoaders$AppClassLoader@b3361661).
at javafx.graphics/com.sun.glass.ui.win.WinApplication.staticScreen_getScreens(Native Method)
at javafx.graphics/com.sun.glass.ui.Screen.initScreens(Screen.java:412)
at javafx.graphics/com.sun.glass.ui.Application.lambda$run$1(Application.java:152)
at com.sun.glass.ui.Application$$Lambda$120.00000000A0FAC830.run(Unknown Source)
at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
at com.sun.glass.ui.win.WinApplication$$Lambda$124.00000000A0EE9880.run(Unknown Source)
at java.base/java.lang.Thread.run(Thread.java:825)
Exception in thread "WindowsNativeRunloopThread" java.lang.NoSuchMethodError: com/sun/glass/ui/Screen.<init>(JIIIIIIIIIIIFF)V (loaded from file:/C:/Users/matth/.gradle/caches/modules-2/files-2.1/org.openjfx/javafx-graphics/12.0.1/18a01ffdd4edb82e7da3bc99937c6a608d1eaaa6/javafx-graphics-12.0.1-win.jar by jdk.internal.loader.ClassLoaders$AppClassLoader@b3361661) called from class com.sun.glass.ui.win.WinApplication (loaded from file:/C:/Users/matth/.gradle/caches/modules-2/files-2.1/org.openjfx/javafx-graphics/12.0.1/18a01ffdd4edb82e7da3bc99937c6a608d1eaaa6/javafx-graphics-12.0.1-win.jar by jdk.internal.loader.ClassLoaders$AppClassLoader@b3361661).
at javafx.graphics/com.sun.glass.ui.win.WinApplication.staticScreen_getScreens(Native Method)
at javafx.graphics/com.sun.glass.ui.Screen.initScreens(Screen.java:412)
at javafx.graphics/com.sun.glass.ui.Application.lambda$run$1(Application.java:152)
at com.sun.glass.ui.Application$$Lambda$120.00000000A0FAC830.run(Unknown Source)
at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
at com.sun.glass.ui.win.WinApplication$$Lambda$124.00000000A0EE9880.run(Unknown Source)
at java.base/java.lang.Thread.run(Thread.java:825)
Exception in thread "JavaFX Application Thread" java.lang.NullPointerException
at javafx.graphics/com.sun.prism.d3d.D3DPipeline.getAdapterOrdinal(D3DPipeline.java:205)
at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.assignScreensAdapters(QuantumToolkit.java:738)
at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.runToolkit(QuantumToolkit.java:334)
at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.lambda$startup$10(QuantumToolkit.java:279)
at com.sun.javafx.tk.quantum.QuantumToolkit$$Lambda$117.00000000A1A1F210.run(Unknown Source)
at javafx.graphics/com.sun.glass.ui.Application.lambda$run$1(Application.java:153)
at com.sun.glass.ui.Application$$Lambda$120.00000000A0FAC830.run(Unknown Source)
at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
at com.sun.glass.ui.win.WinApplication$$Lambda$124.00000000A0EE9880.run(Unknown Source)
at java.base/java.lang.Thread.run(Thread.java:825)
Would be nice to have a task to allow user to quickly download the OS-specific, non-LTS JavaFX SDK based on where the Gradle build is being executed.
$ gradle downloadFXsdk
With this task, one could use the downloaded SDK instead of relying on manual downloads, custom tasks, or shell scripts to get the SDK to an external folder.
Maybe this is not an actual issue, but here are the steps I followed.
I'm using IntelliJ, JDK14, Gradle 6.4.
I took your sample, which compiled and ran fine, and added another folder mm
with a copy of HelloFX class (MyFile.java
).
I changed the gradle.build file to be:
plugins {
id 'application'
id 'org.openjfx.javafxplugin' version '0.0.8'
}
repositories {
mavenCentral()
}
javafx {
version = "14"
modules = [ 'javafx.controls' ]
}
sourceSets {
mm {
compileClasspath += sourceSets.main.output
runtimeClasspath += compileClasspath
runtimeClasspath += sourceSets.main.output
runtimeClasspath += sourceSets.main.compileClasspath
}
}
mainClassName = 'HelloFX'
The build and run tasks for the project still work fine, just as before adding the extra folder.
However, when executing the compileMmJava
task, I get errors:
It looks like JavaFX is not visible for mm
folder.
I started a small JavaFx app with the build.grade like here
Still, when I want to execute the main class I get:
java.lang.IllegalAccessError: superclass access check failed: class com.sun.javafx.scene.control.ControlHelper (in unnamed module @0x117c7d50) cannot access class com.sun.javafx.scene.layout.RegionHelper (in module javafx.graphics) because module javafx.graphics does not export com.sun.javafx.scene.layout to unnamed module @0x117c7d50
Project is set to use OpenJDK11, Gradle 6.5.
Do you know any way to fix this ?
plugins {
id 'application'
id 'org.openjfx.javafxplugin' version '8.8.2'
}
repositories {
mavenCentral()
}
javafx {
version = "14"
modules = [ 'javafx.controls', 'javafx.graphics' ]
}
mainClassName = 'CustomTextAreaApp'
Starting August 1, 2019, your apps published on Google Play will need to support 64-bit architectures. 64-bit CPUs deliver faster, richer experiences for your users. Adding a 64-bit version of your app provides performance improvements, makes way for future innovation, and sets you up for devices with 64-bit-only hardware.
https://developer.android.com/distribute/best-practices/develop/64-bit
Currently there is no way to rellease your application to Google Play.
uploading apk after apkRelease, zipalignRelease gives you this:
Can the plugin download by default the JavaDoc for the required JavaFX modules?
I see it already downloads the sources.
It looks like if the jar is built on a Linux machine, it will skip required libraries for windows and it won't work on windows 10.
Using a combination of JavaFX SDK and dependencies on a modular HelloFX project results in multiple javafx-controls
jars on the module path.
For example:
javafx {
sdk = "location-to-javafx-sdk-11"
modules = [ 'javafx.controls', 'javafx.fxml' ]
}
dependencies {
compile 'org.controlsfx:controlsfx:11.0.1';
}
The module path looks like:
--module-path
hellofx/build/classes/java/main;
.m2/repository/org.controlsfx/controlsfx/11.0.1/controlsfx-11.0.1.jar;
javafx-sdk-11/lib/javafx.controls.jar;
javafx-sdk-11/lib/javafx.fxml.jar;
.m2/repository/org/openjfx/11.0.2/javafx-web-11.0.2.jar;
.m2/repository/org/openjfx/javafx-controls/11.0.2/javafx-controls-11.0.2.jar;
.m2/repository/org/openjfx/javafx-swing/11.0.2/javafx-swing-11.0.2.jar;
.m2/repository/org/openjfx/javafx-media/11.0.2/javafx-media-11.0.2.jar;
.m2/repository/org/openjfx/javafx-graphics/11.0.2/javafx-graphics-11.0.2.jar;
.m2/repository/org/openjfx/javafx-base/11.0.2/javafx-base-11.0.2.jar
There are 2 instances of javafx-controls.jar
from the following locations:
Suppose I have multi-project build where A
is a base and B
and C
depends on it. 'A' is a library and does not include application
plugin, but B
and C
do have main class etc. Currently, if I apply plugin to A
, then everything works fine in compile time, but I am missing FX runtime for B
and C
. Is it possible to make runtime libraries transitive?
I'm about to jump to Java11 but our build server is still on Java10 for the next two weeks.
Thus I hoped to get it temporarily running (or at least compiled) on Java10.
Unfortunately this plugin (taken from plugins.gradle.org) was compiled by Java11 (class file version 55.0) while FX11 itself seems still on 54.0.
But maybe using JavaFX11 with Java10 does not work anyway.
There is a kotlin example for modular projects:
https://github.com/ilya-g/kotlin-jlink-examples
When adding this plugin to the main app, it won't work anymore. I don't know if this is due to this plugin or the example.
#41 allows to remove platform lock, but it does not provide full cross-platform support requested by #18 and #35. The proposal has several parts:
Automatically declare javafx dependencies as compileOnly for projects without application plugin or otherwise marked as library, so there would be no mistakes from including several dependencies for different platforms. Turn dependencies to implementation
only for projects with application
plugin.
Provide a way to explicitly declare target platform for distribution. For example, it could be done like this:
javafx{
target( WINDOWS, LINUX ) // those are members of enum
}
In case platform clause present, it should create a configuration for each platform and create a distribution for each (using implementation
mode for plarform-specific dependency).
javafx{
//path to a system-wide fx jmods placement. Has some reasonable default like "../javafx"
fxpath : String = ""
/*
* if true, use fxpath to search for javafx distribution (change start script for application).
* Is set to [true] automatically, when [fxpath] is set
*/
local : Boolean = true
}
fxpath
. This requires a lot of work and is not first order concern.The code in the JavaFXPlugiln.applyDepencencies function appears to be creating "compile" dependencies, but current Gradle advice is to consider these deprecated.
More information here:
If one enters wrong JavaFX module names, he gets NPE. I think that plugin should evaluate this exception. Even better to use enum instead.
Hi,
I have followed the instructions to add this plugin to my build.gradle file.
Now I am done with my JavaFX Application and I wish to package the final application as an executable .exe file for the Windows Platform . How can I do that? Thanks.
This issue happens when running the non-modular sample for IntelliJ when running gradle run
inside IntelliJ.
JDK 12 (AdoptOpenJDK 12.0.2 with HotSpot)
Exception in thread "WindowsNativeRunloopThread" java.lang.NoSuchMethodError: <init>
at javafx.graphics/com.sun.glass.ui.win.WinApplication.staticScreen_getScreens(Native Method)
at javafx.graphics/com.sun.glass.ui.Screen.initScreens(Screen.java:412)
at javafx.graphics/com.sun.glass.ui.Application.lambda$run$1(Application.java:152)
at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
at java.base/java.lang.Thread.run(Thread.java:835)
Exception in thread "JavaFX Application Thread" java.lang.NullPointerException
at javafx.graphics/com.sun.prism.d3d.D3DPipeline.getAdapterOrdinal(D3DPipeline.java:205)
at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.assignScreensAdapters(QuantumToolkit.java:738)
at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.runToolkit(QuantumToolkit.java:334)
at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.lambda$startup$10(QuantumToolkit.java:279)
at javafx.graphics/com.sun.glass.ui.Application.lambda$run$1(Application.java:153)
at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
at java.base/java.lang.Thread.run(Thread.java:835)
My guess is that the DLLs included in the platform dependencies are not getting loaded for some reason.
Edit: I have also created an issue on IntelliJ IDEA's bug tracker just in case the issue comes from their end https://youtrack.jetbrains.com/issue/IDEA-219912
I have encountered following problem with build using javafx-gradle-plugin
:
$ ./gradlew build
> Configure project :
Found module name 'demo.main'
> Task :compileTestJava FAILED
error: the unnamed module reads package com.github.jknack.handlebars.helper from both handlebars.helpers and handlebars
error: the unnamed module reads package javax.activation from both org.apache.sling.javax.activation and activation
error: the unnamed module reads package org.codehaus.groovy.runtime from both org.codehaus.groovy.xml and org.codehaus.groovy
error: the unnamed module reads package groovy.xml from both org.codehaus.groovy.xml and org.codehaus.groovy
error: the unnamed module reads package groovy.util from both org.codehaus.groovy.xml and org.codehaus.groovy
error: module javafx.baseEmpty reads package com.github.jknack.handlebars.helper from both handlebars.helpers and handlebars
error: module javafx.baseEmpty reads package javax.activation from both org.apache.sling.javax.activation and activation
error: module javafx.baseEmpty reads package org.codehaus.groovy.runtime from both org.codehaus.groovy.xml and org.codehaus.groovy
error: module javafx.baseEmpty reads package groovy.xml from both org.codehaus.groovy.xml and org.codehaus.groovy
error: module javafx.baseEmpty reads package groovy.util from both org.codehaus.groovy.xml and org.codehaus.groovy
error: module wiremock reads package com.github.jknack.handlebars.helper from both handlebars.helpers and handlebars
error: module wiremock reads package javax.activation from both org.apache.sling.javax.activation and activation
error: module wiremock reads package org.codehaus.groovy.runtime from both org.codehaus.groovy.xml and org.codehaus.groovy
error: module wiremock reads package groovy.xml from both org.codehaus.groovy.xml and org.codehaus.groovy
error: module wiremock reads package groovy.util from both org.codehaus.groovy.xml and org.codehaus.groovy
// (...) a lot more errors here...
error: module org.xmlunit reads package groovy.util from both org.codehaus.groovy.xml and org.codehaus.groovy
100 errors
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':compileTestJava'.
> Compilation failed; see the compiler error output for details.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 0s
3 actionable tasks: 3 executed
My application fetches data from some external services which are mocked using wiremock
within tests. Gradle configuration here. Build passes once either I remove javafx
plugin or wiremock
dependency.
I have tested various build configuration and here are the results:
Build configuration | Configuration file | Result |
---|---|---|
Gradle with plugin | build.gradle | Build fails due to error above |
Gradle without plugin (dependencies added manually) | build.gradle | Build passes |
Maven with plugin | pom.xml | Build passes |
Following example project is affected by the issue: https://github.com/kr5ture/javafx-gradle-plugin-issue/tree/gradle-with-plugin . I created three branches with build configurations by the table above.
#24 added support for non-modular projects (thank you!). This works fine when using the default run
task provided by the application
plugin, but not for other JavaExec
tasks (the necessary --module-path
and --add-modules
args are not added for them).
This is a problem when using IntelliJ: if you run a class from IntelliJ (using an "Application" run configuration) in a Gradle-based project, IntelliJ creates and runs a JavaExec
task on the fly based on the run configuration's settings. Since this is a new task and not the default run
task, the additional arguments for OpenJFX are not added by the plugin.
I would say that all JavaExec
tasks should have the additional JVM arguments added, but that might have unintended effects on tasks that execute something non-JavaFX-related. Maybe the plugin should check which tasks have the OpenJFX jars in the classpath, and add the extra options only for those tasks?
For now I've found two workarounds for this issue:
run
task. This way IntelliJ uses the predefined task instead of creating a new one.Hi,
the documentation says:
" The plugin only includes binaries for the platform running the build. "
But when importing the project into IntelliJ on Mac, Gradle provides the dependencies for both win and mac:
This leads to the error that 'javafx.base' is provided twice:
What can I do to only have the platform-specific dependencies on my classpath?
While the plugin itself is not useful in a build using JDK 8, it cannot be included and conditionally applied without jumping through hoops:
buildscript {
repositories {
maven {
url 'https://plugins.gradle.org/m2/'
}
}
dependencies {
classpath 'org.openjfx:javafx-plugin:0.0.8'
}
}
plugins {
// ...
// this does not work due to Gradle attempting to load the classes anyway:
// id 'org.openjfx.javafx-plugin' version '0.0.8' apply false
// also, it is not permitted to use if statements in this block.
}
if (JavaVersion.current().java11Compatible) {
apply plugin: 'org.openjfx.javafxplugin'
javafx { ... }
}
The use case is a project which can be compiled against Java 8 and Java 11.
Currently the JavaFX plugin implicitly applies the module plugin (https://github.com/java9-modularity/gradle-modules-plugin):
This behavior is quite surprising, since the README never mentions modularization anywhere. The guides on openjfx.io explain how to create "non-modular" and "modular" OpenJFX applications using the Gradle plugin, but as far as I can tell even the "non-modular" version uses the module system at runtime (it just doesn't have a module-info.java).
I'm not all that familiar with the module system yet, but from what I've read it is possible to use both the classpath (for non-modular code) and the module path (for modular code) at the same time. In that case, shouldn't it be possible to put OpenJFX on the module path without affecting all of the project code and the dependencies?
In any case, it would be helpful if the documentation explained in what way the module system is used/required, and in particular whether the project code needs to be modularized before it can use OpenJFX.
Hi, I'm trying to download specific version of javafx modules
I'm using gradle 6.5
and this is my build.gradle
. Note, I'm using nexus
as a proxy but this shouldn't matter.
plugins {
// Apply the java-library plugin to add support for Java Library
id 'java-library'
id 'eclipse'
id 'org.openjfx.javafxplugin' version'0.0.8'
id 'org.springframework.boot' version '2.3.1.RELEASE'
id 'io.spring.dependency-management' version '1.0.9.RELEASE'
id 'io.freefair.lombok' version '5.1.0'
}
repositories {
maven {
url "${nexusUrl}/repository/mvn-group/"
}
}
javafx {
version = '14.01'
modules = [ 'javafx.base', 'javafx.controls', 'javafx.fxml', 'javafx.graphics', 'javafx.media', 'javafx.swing', 'javafx.web' ]
// configuration = 'compileOnly'
}
It will complain this
It will work if I change to 14
instead of 14.01
. 14.01
does exist in mvnrepo
I also wish to download for a specific platform, or rather, I would like to download all type of platforms available. I tried to add configuration = 'compileOnly'
but it doesn't seem to work. Is there a config for me to set to download by platform? I tried to look through the issues, but don't seem to find any.
Thanks!
The plugin does not yet appear to support building and running of test code (e.g. Junit5 test suites) from the appropriate Gradle targets, if the code to be tested or the test code has compile-time or runtime dependencies on JavaFX modules. Please support this.
I created a project using gradle 6.3, kotlin 1.14 and jdk 14.
After I added module-info.java to the project, I got the following error:
下午5:52:45: Executing task 'run'...
> Configure project :
Found module name 'jfxdemo'
> Task :compileKotlin
> Task :compileJava FAILED
2 actionable tasks: 2 executed
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':compileJava'.
> The value for task ':compileJava' property 'destinationDirectory' is final and cannot be changed any further.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 564ms
下午5:52:46: Task execution finished 'run'.
I've built a simple project using Gradle and JavaFX with this plugin. gradle run
works fine and runs my app. gradle build
produces a .zip of my project in build/distributions
. When I open the zip I see a bin
folder and a lib
. The lib folder contains a ton of jars, including javafx-base
, javafx-controls
, and so forth. The bin folder contains a Unix executable. When I run this Unix executable (I'm on a Mac), I receive the following error:
Error: JavaFX runtime components are missing, and are required to run this application
Yet, everything runs fine when I run via gradle run
.
What am I missing?
But I used openJDK 11.0.2 .
plugins {
id 'java'
id 'application'
id 'org.openjfx.javafxplugin' version '0.0.8'
}
group 'com.fx.similar'
version '1.0-SNAPSHOT'
repositories {
mavenCentral()
maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
}
mainClassName = 'com.fx.app.App'
javafx {
version = "12"
modules = [ 'javafx.controls', 'javafx.fxml','javafx.base','javafx.graphics' ]
}
The value of the resolved platform
may be of use to other tasks. Please consider exposing it using the extra properties container, for example
detectPlatform(project);
project.ext.platform = platform
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.