java9-modularity / gradle-modules-plugin

This Gradle plugin helps working with the Java Platform Module System
https://javamodularity.com/
MIT License
233 stars 36 forks source link

javafxplugin can't be applied #150

Closed PaulWinstone closed 4 years ago

PaulWinstone commented 4 years ago

Is this a JavaFX plugin or modules plugin issue (I am not used to raising issues or working with Gradle so hope message below is enough to get going)

I will do some more exploration and try and develop a reference example but an up front steer would be appreciated.

siordache commented 4 years ago

@PaulWinstone Could you post your build script? Do you explicitly apply both the javafx-plugin and the modules-plugin?

PaulWinstone commented 4 years ago

@siordache I do explicitly apply both I have a dummy project that I can share `/*

plugins { // Apply the java-library plugin to add support for Java Library //id 'java-library' id 'java' id 'application' id 'eclipse' id 'org.openjfx.javafxplugin' version '0.0.8' id 'org.javamodularity.moduleplugin' version '1.6.0' apply false }

repositories { // Use jcenter for resolving dependencies. // You can declare any Maven/Ivy/file repository here. jcenter() mavenCentral() }

sourceCompatibility = JavaVersion.VERSION_13 targetCompatibility = JavaVersion.VERSION_13

dependencies { // This dependency is exported to consumers, that is to say found on their compile classpath. // https://mvnrepository.com/artifact/org.apache.commons/commons-math3 compile group: 'org.apache.commons', name: 'commons-math3', version: '3.6.1'

// This dependency is used internally, and not exposed to consumers on their own compile classpath.
implementation 'com.google.guava:guava:28.2-jre'

// Use JUnit test framework
testImplementation 'junit:junit:4.13'

}

mainClassName = 'icsModule.App'

eclipse{ project{ // name = 'icsModule'

    comment = 'Very interesting'
}

}

subprojects { apply plugin: 'java' apply plugin: "org.javamodularity.moduleplugin"

version "1.0-SNAPSHOT"

sourceCompatibility = 13
targetCompatibility = 13

repositories {
    mavenCentral()
}

test {
    useJUnitPlatform()

    testLogging {
        events 'PASSED', 'FAILED', 'SKIPPED'
    }
}

dependencies {
    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.3.1'
    testImplementation 'org.junit.jupiter:junit-jupiter-params:5.3.1'
    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.3.1'
    //implementation 'junit:junit:4.12'
    classpath 'org.openjfx:javafx-plugin:0.0.8'
}

}`

PaulWinstone commented 4 years ago

`/*

plugins { // Apply the java-library plugin to add support for Java Library //id 'java-library' id 'java' id 'application' id 'eclipse' id 'org.openjfx.javafxplugin' version '0.0.8' id 'org.javamodularity.moduleplugin' version '1.6.0' apply false }

repositories { // Use jcenter for resolving dependencies. // You can declare any Maven/Ivy/file repository here. jcenter() mavenCentral() }

sourceCompatibility = JavaVersion.VERSION_13 targetCompatibility = JavaVersion.VERSION_13

dependencies { // This dependency is exported to consumers, that is to say found on their compile classpath. // https://mvnrepository.com/artifact/org.apache.commons/commons-math3 compile group: 'org.apache.commons', name: 'commons-math3', version: '3.6.1'

// This dependency is used internally, and not exposed to consumers on their own compile classpath.
implementation 'com.google.guava:guava:28.2-jre'

// Use JUnit test framework
testImplementation 'junit:junit:4.13'

}

mainClassName = 'icsModule.App'

eclipse{ project{ // name = 'icsModule'

    comment = 'Very interesting'
}

}

subprojects { apply plugin: 'java' apply plugin: "org.javamodularity.moduleplugin"

version "1.0-SNAPSHOT"

sourceCompatibility = 13
targetCompatibility = 13

repositories {
    mavenCentral()
}

test {
    useJUnitPlatform()

    testLogging {
        events 'PASSED', 'FAILED', 'SKIPPED'
    }
}

dependencies {
    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.3.1'
    testImplementation 'org.junit.jupiter:junit-jupiter-params:5.3.1'
    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.3.1'
    //implementation 'junit:junit:4.12'
    classpath 'org.openjfx:javafx-plugin:0.0.8'
}

}`

@PaulWinstone Could you post your build script? Do you explicitly apply both the javafx-plugin and the modules-plugin?

Of course I didn't apply in subproject Problem solved Thanks for help

PaulWinstone commented 4 years ago

I can now see how to write the error message and it makes more sense. Thanks for your help

siordache commented 4 years ago

I'm glad that you solved it!

MajorTuvok commented 4 years ago

@PaulWinstone could you maybe share what you changed? I'm running into the same error message as you, but don't see what you actually changed and I'd like to take a look whether your Problem matches mine...

MajorTuvok commented 4 years ago

So for anyone also encountering this: I found a workaround by forcing moduleplugin version "1.5.0" instead of "1.7.0" [or "1.6.0"].

org.gradle.api.plugins.InvalidPluginException: An exception occurred applying plugin request [id: 'org.openjfx.javafxplugin', version: '0.0.8']
    at org.gradle.plugin.use.internal.DefaultPluginRequestApplicator.exceptionOccurred(DefaultPluginRequestApplicator.java:253)
    at org.gradle.plugin.use.internal.DefaultPluginRequestApplicator.applyPlugin(DefaultPluginRequestApplicator.java:235)
    at org.gradle.plugin.use.internal.DefaultPluginRequestApplicator.applyPlugins(DefaultPluginRequestApplicator.java:151)
    at org.gradle.configuration.DefaultScriptPluginFactory$ScriptPluginImpl.apply(DefaultScriptPluginFactory.java:216)
    at org.gradle.configuration.BuildOperationScriptPlugin$1$1.run(BuildOperationScriptPlugin.java:69)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:402)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:394)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:92)
    at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
    at org.gradle.configuration.BuildOperationScriptPlugin$1.execute(BuildOperationScriptPlugin.java:66)
    at org.gradle.configuration.BuildOperationScriptPlugin$1.execute(BuildOperationScriptPlugin.java:63)
    at org.gradle.configuration.internal.DefaultUserCodeApplicationContext.apply(DefaultUserCodeApplicationContext.java:49)
    at org.gradle.configuration.BuildOperationScriptPlugin.apply(BuildOperationScriptPlugin.java:63)
    at org.gradle.configuration.project.BuildScriptProcessor$1.run(BuildScriptProcessor.java:45)
    at org.gradle.internal.Factories$1.create(Factories.java:26)
    at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.withMutableState(DefaultProjectStateRegistry.java:245)
    at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.withMutableState(DefaultProjectStateRegistry.java:226)
    at org.gradle.configuration.project.BuildScriptProcessor.execute(BuildScriptProcessor.java:42)
    at org.gradle.configuration.project.BuildScriptProcessor.execute(BuildScriptProcessor.java:26)
    at org.gradle.configuration.project.ConfigureActionsProjectEvaluator.evaluate(ConfigureActionsProjectEvaluator.java:35)
    at org.gradle.configuration.project.LifecycleProjectEvaluator$EvaluateProject$1.run(LifecycleProjectEvaluator.java:102)
    at org.gradle.internal.Factories$1.create(Factories.java:26)
    at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:189)
    at org.gradle.internal.work.StopShieldingWorkerLeaseService.withLocks(StopShieldingWorkerLeaseService.java:40)
    at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.withProjectLock(DefaultProjectStateRegistry.java:271)
    at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.withMutableState(DefaultProjectStateRegistry.java:265)
    at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.withMutableState(DefaultProjectStateRegistry.java:226)
    at org.gradle.configuration.project.LifecycleProjectEvaluator$EvaluateProject.run(LifecycleProjectEvaluator.java:91)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:402)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:394)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:92)
    at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
    at org.gradle.configuration.project.LifecycleProjectEvaluator.evaluate(LifecycleProjectEvaluator.java:63)
    at org.gradle.api.internal.project.DefaultProject.evaluate(DefaultProject.java:707)
    at org.gradle.api.internal.project.DefaultProject.evaluate(DefaultProject.java:143)
    at org.gradle.execution.TaskPathProjectEvaluator.configure(TaskPathProjectEvaluator.java:36)
    at org.gradle.execution.TaskPathProjectEvaluator.configureHierarchy(TaskPathProjectEvaluator.java:64)
    at org.gradle.configuration.DefaultProjectsPreparer.prepareProjects(DefaultProjectsPreparer.java:61)
    at org.gradle.configuration.BuildOperatingFiringProjectsPreparer$ConfigureBuild.run(BuildOperatingFiringProjectsPreparer.java:52)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:402)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:394)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:92)
    at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
    at org.gradle.configuration.BuildOperatingFiringProjectsPreparer.prepareProjects(BuildOperatingFiringProjectsPreparer.java:40)
    at org.gradle.initialization.DefaultGradleLauncher.prepareProjects(DefaultGradleLauncher.java:218)
    at org.gradle.initialization.DefaultGradleLauncher.doClassicBuildStages(DefaultGradleLauncher.java:155)
    at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:140)
    at org.gradle.initialization.DefaultGradleLauncher.executeTasks(DefaultGradleLauncher.java:120)
    at org.gradle.internal.invocation.GradleBuildController$1.create(GradleBuildController.java:74)
    at org.gradle.internal.invocation.GradleBuildController$1.create(GradleBuildController.java:67)
    at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:189)
    at org.gradle.internal.work.StopShieldingWorkerLeaseService.withLocks(StopShieldingWorkerLeaseService.java:40)
    at org.gradle.internal.invocation.GradleBuildController.doBuild(GradleBuildController.java:67)
    at org.gradle.internal.invocation.GradleBuildController.run(GradleBuildController.java:56)
    at org.gradle.tooling.internal.provider.runner.BuildModelActionRunner.run(BuildModelActionRunner.java:54)
    at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
    at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
    at org.gradle.launcher.exec.BuildOutcomeReportingBuildActionRunner.run(BuildOutcomeReportingBuildActionRunner.java:63)
    at org.gradle.tooling.internal.provider.ValidatingBuildActionRunner.run(ValidatingBuildActionRunner.java:32)
    at org.gradle.launcher.exec.BuildCompletionNotifyingBuildActionRunner.run(BuildCompletionNotifyingBuildActionRunner.java:39)
    at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner$3.call(RunAsBuildOperationBuildActionRunner.java:51)
    at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner$3.call(RunAsBuildOperationBuildActionRunner.java:45)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:416)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:406)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:102)
    at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
    at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner.run(RunAsBuildOperationBuildActionRunner.java:45)
    at org.gradle.launcher.exec.InProcessBuildActionExecuter$1.transform(InProcessBuildActionExecuter.java:50)
    at org.gradle.launcher.exec.InProcessBuildActionExecuter$1.transform(InProcessBuildActionExecuter.java:47)
    at org.gradle.composite.internal.DefaultRootBuildState.run(DefaultRootBuildState.java:80)
    at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:47)
    at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:31)
    at org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:42)
    at org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:28)
    at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:78)
    at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:52)
    at org.gradle.tooling.internal.provider.SubscribableBuildActionExecuter.execute(SubscribableBuildActionExecuter.java:60)
    at org.gradle.tooling.internal.provider.SubscribableBuildActionExecuter.execute(SubscribableBuildActionExecuter.java:38)
    at org.gradle.tooling.internal.provider.SessionScopeBuildActionExecuter.execute(SessionScopeBuildActionExecuter.java:68)
    at org.gradle.tooling.internal.provider.SessionScopeBuildActionExecuter.execute(SessionScopeBuildActionExecuter.java:38)
    at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:37)
    at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:26)
    at org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:43)
    at org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:29)
    at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:60)
    at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:32)
    at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:55)
    at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:41)
    at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:48)
    at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:32)
    at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:68)
    at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
    at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:39)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
    at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:29)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
    at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:35)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
    at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.create(ForwardClientInput.java:78)
    at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.create(ForwardClientInput.java:75)
    at org.gradle.util.Swapper.swap(Swapper.java:38)
    at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:75)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
    at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
    at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:63)
    at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
    at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:82)
    at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
    at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:52)
    at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:297)
    at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
    at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
    at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
Caused by: org.gradle.api.internal.plugins.PluginApplicationException: Failed to apply plugin [id 'org.openjfx.javafxplugin']
    at org.gradle.api.internal.plugins.DefaultPluginManager.doApply(DefaultPluginManager.java:167)
    at org.gradle.api.internal.plugins.DefaultPluginManager.apply(DefaultPluginManager.java:136)
    at org.gradle.plugin.use.internal.DefaultPluginRequestApplicator$3.run(DefaultPluginRequestApplicator.java:155)
    at org.gradle.plugin.use.internal.DefaultPluginRequestApplicator.applyPlugin(DefaultPluginRequestApplicator.java:231)
    ... 127 more
Caused by: org.gradle.api.internal.tasks.DefaultTaskContainer$TaskCreationException: Could not create task ':code:configJavafxRun'.
    at org.gradle.api.internal.tasks.DefaultTaskContainer.taskCreationException(DefaultTaskContainer.java:720)
    at org.gradle.api.internal.tasks.DefaultTaskContainer.access$600(DefaultTaskContainer.java:77)
    at org.gradle.api.internal.tasks.DefaultTaskContainer$2.call(DefaultTaskContainer.java:307)
    at org.gradle.api.internal.tasks.DefaultTaskContainer$2.call(DefaultTaskContainer.java:296)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:416)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:406)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:102)
    at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
    at org.gradle.api.internal.tasks.DefaultTaskContainer.doCreate(DefaultTaskContainer.java:296)
    at org.gradle.api.internal.tasks.DefaultTaskContainer.create(DefaultTaskContainer.java:288)
    at org.openjfx.gradle.JavaFXPlugin.apply(JavaFXPlugin.java:47)
    at org.openjfx.gradle.JavaFXPlugin.apply(JavaFXPlugin.java:38)
    at org.gradle.api.internal.plugins.ImperativeOnlyPluginTarget.applyImperative(ImperativeOnlyPluginTarget.java:43)
    at org.gradle.api.internal.plugins.RuleBasedPluginTarget.applyImperative(RuleBasedPluginTarget.java:51)
    at org.gradle.api.internal.plugins.DefaultPluginManager.addPlugin(DefaultPluginManager.java:181)
    at org.gradle.api.internal.plugins.DefaultPluginManager.access$300(DefaultPluginManager.java:51)
    at org.gradle.api.internal.plugins.DefaultPluginManager$AddPluginBuildOperation.run(DefaultPluginManager.java:276)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:402)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:394)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:92)
    at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
    at org.gradle.api.internal.plugins.DefaultPluginManager$2.execute(DefaultPluginManager.java:159)
    at org.gradle.api.internal.plugins.DefaultPluginManager$2.execute(DefaultPluginManager.java:156)
    at org.gradle.configuration.internal.DefaultUserCodeApplicationContext.apply(DefaultUserCodeApplicationContext.java:49)
    at org.gradle.api.internal.plugins.DefaultPluginManager.doApply(DefaultPluginManager.java:156)
    ... 130 more
Caused by: org.gradle.api.tasks.TaskInstantiationException: Could not create task of type 'ExecTask'.
    at org.gradle.api.internal.project.taskfactory.TaskFactory$1.call(TaskFactory.java:79)
    at org.gradle.api.internal.project.taskfactory.TaskFactory$1.call(TaskFactory.java:66)
    at org.gradle.util.GUtil.uncheckedCall(GUtil.java:425)
    at org.gradle.api.internal.AbstractTask.injectIntoNewInstance(AbstractTask.java:196)
    at org.gradle.api.internal.project.taskfactory.TaskFactory.create(TaskFactory.java:66)
    at org.gradle.api.internal.project.taskfactory.PropertyAssociationTaskFactory.create(PropertyAssociationTaskFactory.java:49)
    at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory.create(AnnotationProcessingTaskFactory.java:48)
    at org.gradle.api.internal.tasks.DefaultTaskContainer.createTask(DefaultTaskContainer.java:326)
    at org.gradle.api.internal.tasks.DefaultTaskContainer.access$200(DefaultTaskContainer.java:77)
    at org.gradle.api.internal.tasks.DefaultTaskContainer$2.call(DefaultTaskContainer.java:300)
    ... 158 more
Caused by: org.gradle.internal.instantiation.ClassGenerationException: Could not generate a decorated class for type ExecTask.
    at org.gradle.internal.instantiation.generator.AbstractClassGenerator.generateUnderLock(AbstractClassGenerator.java:225)
    at org.gradle.internal.instantiation.generator.AbstractClassGenerator.lambda$new$0(AbstractClassGenerator.java:118)
    at org.gradle.cache.internal.DefaultCrossBuildInMemoryCacheFactory$AbstractCrossBuildInMemoryCache.get(DefaultCrossBuildInMemoryCacheFactory.java:124)
    at org.gradle.internal.instantiation.generator.AbstractClassGenerator.generate(AbstractClassGenerator.java:157)
    at org.gradle.internal.instantiation.generator.AsmBackedClassGenerator.generate(AsmBackedClassGenerator.java:121)
    at org.gradle.internal.instantiation.generator.Jsr330ConstructorSelector$1.transform(Jsr330ConstructorSelector.java:59)
    at org.gradle.internal.instantiation.generator.Jsr330ConstructorSelector$1.transform(Jsr330ConstructorSelector.java:54)
    at org.gradle.cache.internal.DefaultCrossBuildInMemoryCacheFactory$AbstractCrossBuildInMemoryCache.get(DefaultCrossBuildInMemoryCacheFactory.java:124)
    at org.gradle.internal.instantiation.generator.Jsr330ConstructorSelector.forType(Jsr330ConstructorSelector.java:54)
    at org.gradle.internal.instantiation.generator.Jsr330ConstructorSelector.forParams(Jsr330ConstructorSelector.java:49)
    at org.gradle.internal.instantiation.generator.DependencyInjectingInstantiator.doCreate(DependencyInjectingInstantiator.java:61)
    at org.gradle.internal.instantiation.generator.DependencyInjectingInstantiator.newInstance(DependencyInjectingInstantiator.java:55)
    at org.gradle.api.internal.project.taskfactory.TaskFactory$1.call(TaskFactory.java:72)
    ... 167 more
Caused by: java.lang.NoClassDefFoundError: org/javamodularity/moduleplugin/tasks/ModuleOptions
    at org.gradle.internal.reflect.ClassInspector.inspectClass(ClassInspector.java:69)
    at org.gradle.internal.reflect.ClassInspector.visitGraph(ClassInspector.java:55)
    at org.gradle.internal.reflect.ClassInspector.inspect(ClassInspector.java:35)
    at org.gradle.internal.instantiation.generator.AbstractClassGenerator.inspectType(AbstractClassGenerator.java:254)
    at org.gradle.internal.instantiation.generator.AbstractClassGenerator.generateUnderLock(AbstractClassGenerator.java:198)
    ... 179 more
Caused by: java.lang.ClassNotFoundException: org.javamodularity.moduleplugin.tasks.ModuleOptions
    ... 184 more

The stacktrace kind of makes me think that Java FX is attempting to load a class which used to be present in module plugin 1.5.0 (I don't see it on the repo atm, so that kind of makes sense), but no longer is, because I made gradle use a newer version then the one JavaFX expects [I actually don't know how gradle resolves plugin versions, that's completly guesswork]. @siordache might this be correct? Because if so, I'll propably try to find out where to report this to the person who is making the javafx plugin... Edit: though there also seems to be something wrong with moduleplugin, as compileTestJava doesn't find junit jupiter... -_- Not going to look deeper into this problem this evening though Edit 2: I looked at it now, and it looks like module plugin doesn't like it, when you use testImplementation('org.junit.jupiter:junit-jupiter:5.6.2') instead of the seperate declarations used in the test project... So be it

PaulWinstone commented 4 years ago

I believe I had not applied the plugin for the subprojects I am still gaining experience with modular java and JavaFX with OpenJDK and Eclipse Builship. Its close but I keep getting errors that appear random / very difficult to trace. Is there a forum to discuss without raising issues - I appreciate hard and fast bugs are easy to solve and a forum could be too unfocussed.

siordache commented 4 years ago

@MajorTuvok

@PaulWinstone

MajorTuvok commented 4 years ago

Thanks for the quick response: which is not compatible with recent Gradle versions is my main Problem right now, as I'm using gradle 6.3 because javafx recommends that for working with java 14-javafx... I'm going to try working with the snapshot mentionend here. Thanks for the link! :)

Edit: Which worked with a workaround btw.

PaulWinstone commented 4 years ago

I am looking for the stable stack to give Module application with significant legacy local and Maven jars. Am I too ambitious at this time? Eclipse 2020-3 Buildship 3.14 OpenJDK14 (Bellsoft, Gradle source and target compatibility 13) OpenJFX (via Javafx Gradle plugin version 13 ), Gradle 6.4.1

siordache commented 4 years ago

@PaulWinstone @MajorTuvok

A stable stack would contain org.openjfx.javafxplugin 0.0.9. Hopefully this version will be soon available.

In the meantime, you can play with the version available on my fork:

buildscript {
    repositories {
        maven {url "https://jitpack.io"}
    }
    dependencies {
        classpath "com.github.siordache-forks:javafx-gradle-plugin:0.0.9-rc1"
    }
}

plugins {
    id 'application'
    id 'eclipse'
    id 'org.beryx.jlink' version '2.19.0'
}
apply plugin: "org.openjfx.javafxplugin"

The version on my fork is built using the same code as in the master branch plus this PR.

PaulWinstone commented 4 years ago

Brilliant - I now get an executable which runs.

MajorTuvok commented 4 years ago

Thanks, I'll try with that one+1.7.0 instead of the snapshot+1.7.0 - atm I don't get it to run unit tests in a modular way because for some reason an --add-opens [<valid-module-name>]/=[<junit>] is added (aka erroring because no package name is specified). Running the tests on classpath "hack-fixes" that.

If it doesn't work with the build you linked, I'm going to try to find the time to create a sample project in which the error appears and create a new issue...

siordache commented 4 years ago

@MajorTuvok Do you have some test classes without package? There should be no java files in src/test/java (they're only alowed in subdirectories).

MajorTuvok commented 4 years ago

Nope, I have a module which has no code yet (both tests and regular code, though it has resources - log4j config). And that's added as an opens for the tests of another module, which depends on the not yet implemented module.

siordache commented 4 years ago

@MajorTuvok It might be a bug. Can you put up on GitHub a sample project that allows reproducing this issue?

PaulWinstone commented 4 years ago

Hi Serban

Not sure where to discuss this. My project builds - I just need advice for best way to:

  1. How to place native dll, the dll is currently in src/main/resources subdirectory - it needs to be on library.path - not sure how to copy in Gradle which seems better than extorting from resources in jar. I want to use an setup that has a zipped deployment with an appropriate shortcut so no formal installer required.
  2. How to have bespoke build for different clients – creating a loop which
    • loads specific configuration files
    • naming the executable I presume this a loop after compile so resources can be copied I have this before jlink and jpackage because it was the same jar Advice much appreciated
siordache commented 4 years ago

@PaulWinstone Can you put your project on GitHub? Or maybe a sample project with a similar structure?

PaulWinstone commented 4 years ago

Hi Serban

I have put a demo project here for your comments - https://github.com/PaulWinstone/demoModule.git I don’t know if this is a good project structure / best way to create tasks? We are refactoring the structure to match gradle defaults. We don’t want to deploy all customer configurations to all customers - so specific configurations are placed in the module jar before jpackageImage

The gradle task customerJ makes a task for each customer (fatJar$cust ) that does the appropriate file copies (from resource/config/$cust/) Each of these fatJar tasks need to run jpackageImage with appropriate application name to identify the appropriate customer and customer resources How should the fatJar$cust run jpackageImage multiple times?

Additional questions:

With convention over configuration examples with lots of comments are essential – if this example is useful then more comments are required.

Best Regards

Paul Winstone Solutions Consultant

Mobile +44 77 99 647 603 Skype paul.winstone@intertek.commailto:paul.winstone@intertek.com www.intertek.comhttp://www.intertek.com/

From: Serban Iordache notifications@github.com Reply to: java9-modularity/gradle-modules-plugin reply@reply.github.com Date: Sunday, 7 June 2020 at 22:28 To: java9-modularity/gradle-modules-plugin gradle-modules-plugin@noreply.github.com Cc: Me Work paul.winstone@intertek.com, Mention mention@noreply.github.com Subject: [External] Re: [java9-modularity/gradle-modules-plugin] javafxplugin can't be applied (#150)

@PaulWinstone [github.com]https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_PaulWinstone&d=DwMCaQ&c=DwOPjGaQseYIIptHXBesgQ&r=reGj5RySq5hqoHFqyq6a1cQdf2BCD3JWz4Y56jHqKw4&m=KjmgbCNE1XaCkGTGOZklGMHJJugP_MgVeiqg0BIiT38&s=MCBBJBQnhz_5_mvSQ4uhFUZgCHPN-OikESMAZFvkoCw&e= Can you put your project on GitHub? Or maybe a sample project with a similar structure?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub [github.com]https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_java9-2Dmodularity_gradle-2Dmodules-2Dplugin_issues_150-23issuecomment-2D640282482&d=DwMCaQ&c=DwOPjGaQseYIIptHXBesgQ&r=reGj5RySq5hqoHFqyq6a1cQdf2BCD3JWz4Y56jHqKw4&m=KjmgbCNE1XaCkGTGOZklGMHJJugP_MgVeiqg0BIiT38&s=yvl9jaU_msex6PTMUIe9wYg1gHrhiNYX5zkBYCCCJhM&e=, or unsubscribe [github.com]https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_notifications_unsubscribe-2Dauth_ABRMAYGKWNQOXX3RFNA7FHLRVQA6RANCNFSM4M6C6SZA&d=DwMCaQ&c=DwOPjGaQseYIIptHXBesgQ&r=reGj5RySq5hqoHFqyq6a1cQdf2BCD3JWz4Y56jHqKw4&m=KjmgbCNE1XaCkGTGOZklGMHJJugP_MgVeiqg0BIiT38&s=oxqxKdtg2-jsgl3FKE9-vgveC3qHsil8UPhSbwbhPvQ&e=.


This message is from an EXTERNAL SENDER - please be CAUTIOUS, particularly with links and attachments.

Total Quality. Assured.


CONFIDENTIALITY NOTICE

This email may contain confidential or privileged information, if you are not the intended recipient, or the person responsible for delivering the message to the intended recipient then please notify us by return email immediately. Should you have received this email in error then you should not copy this for any purpose nor disclose its contents to any other person.

http://www.intertek.com

siordache commented 4 years ago

@PaulWinstone I asked a few questions on the demo project page. Let's continue the discussion there.