Gradle 6 Incompatibility
Using the example
platform {
// add pegdown as dependency to the platform configuration
bundle 'org.pegdown:pegdown:1.4.2'
}
with gradle version 6.0.1 I get the error:
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':bundles'.
> Cannot add artifact if target configuration has been set
* Try:
Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':bundles'.
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.lambda$executeIfValid$1(ExecuteActionsTaskExecuter.java:187)
at org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:263)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:185)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:166)
at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:109)
at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:62)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
at org.gradle.internal.operations.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.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:41)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:374)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:361)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:354)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:340)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.lambda$run$0(DefaultPlanExecutor.java:127)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:191)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:182)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:124)
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.InvalidUserCodeException: Cannot add artifact if target configuration has been set
at org.gradle.api.internal.artifacts.dependencies.AbstractModuleDependency.validateNoTargetConfiguration(AbstractModuleDependency.java:306)
at org.gradle.api.internal.artifacts.dependencies.AbstractModuleDependency.addArtifact(AbstractModuleDependency.java:122)
at org.gradle.api.internal.artifacts.dependencies.AbstractModuleDependency.addArtifact(AbstractModuleDependency.java:46)
at org.gradle.api.artifacts.ModuleDependency$addArtifact.call(Unknown Source)
at org.standardout.gradle.plugin.platform.internal.util.gradle.DependencyHelper$_retrieveSourcesForDeps_closure4.doCall(DependencyHelper.groovy:204)
at org.standardout.gradle.plugin.platform.internal.util.gradle.DependencyHelper.retrieveSourcesForDeps(DependencyHelper.groovy:195)
at org.standardout.gradle.plugin.platform.internal.util.gradle.DependencyHelper.resolveSourceArtifacts(DependencyHelper.groovy:167)
at org.standardout.gradle.plugin.platform.internal.util.gradle.DependencyHelper$resolveSourceArtifacts$0.call(Unknown Source)
at org.standardout.gradle.plugin.platform.internal.BundlesAction.execute(BundlesAction.groovy:159)
at org.standardout.gradle.plugin.platform.internal.BundlesAction.execute(BundlesAction.groovy)
...
It is working with gradle 5.6.4!
Looks like a change to the behavior of the Gradle API there. I'm afraid I don't have time to look into this in the foreseeable future, but I will gladly test and review any PRs.
It works if fetchSources is disabled:
platform {
bundle('some-group:some-artifact:some-version')
fetchSources = false
}
Runinng the script with Gradle 6.5 I get the following message:
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':bundles'.
> Cannot add artifact if target configuration has been set
* 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 1s
1 actionable task: 1 executed
Here is my build file, works fine with Gradle 5.6.4:
plugins {
id "org.standardout.bnd-platform" version "1.7.0"
}
repositories {
mavenCentral()
}
platform {
// add pegdown as dependency to the platform configuration
bundle 'org.pegdown:pegdown:1.4.2'
}
@vogella @ibauersachs's solution worked for me, give it a try.
Disabling fetchSources does work around the problem for me, too.
I'd really prefer to have the sources available, though. Has anyone successfully applied the fix from in #73 - that is, is there a patched artificat published somewhere?
@yohoe how did you proceed, are you using a privately published artifact?
Looks as if the new releases are not being published, the latest version in the Plugin Portal is still 1.7.0: https://plugins.gradle.org/plugin/org.standardout.bnd-platform
@jochenberger Yes, right now it is only available via Maven Central (see instructions in README) and not via the Plugin Portal.
I added a ticket on adding the new releases to the Plugin Portal as well: https://github.com/stempler/bnd-platform/issues/77
Sorry, I didn't notice that. Thanks for the clarification.