stempler / bnd-platform

Build OSGi bundles and Eclipse Update Sites from existing JARs, e.g. from Maven repositories (Plugin for Gradle)
Apache License 2.0
79 stars 30 forks source link

Gradle 6 Incompatibility #68

Closed stegeto22 closed 10 months ago

stegeto22 commented 4 years ago

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!

stempler commented 4 years ago

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.

ibauersachs commented 4 years ago

It works if fetchSources is disabled:

platform {
    bundle('some-group:some-artifact:some-version')
    fetchSources = false
}
vogella commented 4 years ago

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'
}
themhassany commented 3 years ago

@vogella @ibauersachs's solution worked for me, give it a try.

aumann commented 1 year ago

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?

jochenberger commented 10 months ago

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

stempler commented 10 months ago

@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

jochenberger commented 10 months ago

Sorry, I didn't notice that. Thanks for the clarification.