Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Gradle fails to resolve project dependencies against Scala projects #6750

Closed
big-guy opened this issue Sep 13, 2018 · 28 comments
Closed

Gradle fails to resolve project dependencies against Scala projects #6750

big-guy opened this issue Sep 13, 2018 · 28 comments
Assignees
Milestone

Comments

@big-guy
Copy link
Member

big-guy commented Sep 13, 2018

In 4.10.1, we introduced another variant for Scala projects to share analysis files between projects.

This build passes in 4.10 and before:

            allprojects {
                repositories {
                    jcenter()
                }
            }
            project(":other") {
                apply plugin: 'base'
                configurations {
                    conf
                }
                dependencies {
                    conf(project(":scala"))
                }
                task resolve {
                    dependsOn configurations.conf
                    doLast {
                        println configurations.conf.files
                    }
                }
            }
            project(":scala") {
                apply plugin: 'scala'
                dependencies {
                    compile("org.scala-lang:scala-library:2.12.6")
                }
            }

In 4.10.1, this fails with:

Cannot choose between the following variants of project :scala:
  - apiElements
  - incrementalScalaAnalysisElements
  - runtimeElements
All of them match the consumer attributes:
  - Variant 'apiElements': Found org.gradle.usage 'java-api' but wasn't required.
  - Variant 'incrementalScalaAnalysisElements': Found org.gradle.usage 'incremental-analysis' but wasn't required.
  - Variant 'runtimeElements': Found org.gradle.usage 'java-runtime-jars' but wasn't required.
@jakubhava
Copy link

Can confirm the issue

@big-guy
Copy link
Member Author

big-guy commented Sep 17, 2018

@drujd @jakubhava Could you give 4.10.2-20180917175211+0000 a try?

You can upgrade with gradlew wrapper --gradle-version=4.10.2-20180917175211+0000.

big-guy added a commit that referenced this issue Sep 17, 2018
* origin/release:
  Bump to 4.10.2 nightly
  Recommend people update to 4.10.2, not base 4.10
  Reset public API and baseline for comparison
  Bump to 4.10.2
  Fix #6750
  Fix #6735
@big-guy
Copy link
Member Author

big-guy commented Sep 19, 2018

Hey @drujd @jakubhava, have you had a chance to try the nightly out? If it looks good to you, this will become 4.10.2

@jakubhava
Copy link

Sorry for late answer, going to test now! Thank you!

@jakubhava
Copy link

@big-guy works fine, thx!

@big-guy
Copy link
Member Author

big-guy commented Sep 19, 2018

Thanks @jakubhava

@drujd
Copy link

drujd commented Sep 19, 2018

I can also confirm that the issue is resolved in the nightly.

@big-guy
Copy link
Member Author

big-guy commented Sep 19, 2018

Thanks @drujd

@dsilvasc
Copy link

dsilvasc commented Sep 19, 2018

I still see this in gradle 4.10.2 with a Scala subproject that depends on a Java subproject:

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':a-scala-project:duplicateFinder'.
> Could not resolve all files for configuration ':a-scala-project:incrementalScalaAnalysisFormain'.
   > Could not resolve project :other:java-project.
     Required by:
         project :a-scala-project
      > Unable to find a matching variant of project :other:java-project:
          - Variant 'apiElements': Required org.gradle.usage 'incremental-analysis' and found incompatible value 'java-api'.
          - Variant 'runtimeElements': Required org.gradle.usage 'incremental-analysis' and found incompatible value 'java-runtime-jars'.
   > Could not resolve project :yet-another:java-proj.
     Required by:
         project :a-scala-project
      > Unable to find a matching variant of project :yet-another:java-proj:
          - Variant 'apiElements': Required org.gradle.usage 'incremental-analysis' and found incompatible value 'java-api'.
          - Variant 'runtimeElements': Required org.gradle.usage 'incremental-analysis' and found incompatible value 'java-runtime-jars'.

* 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 ':a-scala-project:duplicateFinder'.
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:110)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:77)
	at org.gradle.api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51)
	at org.gradle.api.internal.tasks.execution.SkipCachedTaskExecuter.execute(SkipCachedTaskExecuter.java:105)
	at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:59)
	at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
	at org.gradle.api.internal.tasks.execution.ResolveBuildCacheKeyExecuter.execute(ResolveBuildCacheKeyExecuter.java:79)
	at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:59)
	at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:101)
	at org.gradle.api.internal.tasks.execution.FinalizeInputFilePropertiesTaskExecuter.execute(FinalizeInputFilePropertiesTaskExecuter.java:44)
	at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:91)
	at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:62)
	at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:59)
	at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)
	at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
	at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.run(EventFiringTaskExecuter.java:51)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:300)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:292)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:174)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
	at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:46)
	at org.gradle.execution.taskgraph.LocalTaskInfoExecutor.execute(LocalTaskInfoExecutor.java:42)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareWorkItemExecutor.execute(DefaultTaskExecutionGraph.java:277)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareWorkItemExecutor.execute(DefaultTaskExecutionGraph.java:262)
	at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:135)
	at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:130)
	at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ExecutorWorker.execute(DefaultTaskPlanExecutor.java:200)
	at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ExecutorWorker.executeWithWork(DefaultTaskPlanExecutor.java:191)
	at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ExecutorWorker.run(DefaultTaskPlanExecutor.java:130)
	at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
	at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
	at java.lang.Thread.run(Thread.java:748)
Caused by: org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration$ArtifactResolveException: Could not resolve all files for configuration ':a-scala-project:incrementalScalaAnalysisFormain'.
	at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.rethrowFailure(DefaultConfiguration.java:1054)
	at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.access$1700(DefaultConfiguration.java:123)
	at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration$ConfigurationFileCollection.getFiles(DefaultConfiguration.java:1028)
	at org.gradle.api.internal.file.AbstractFileCollection.iterator(AbstractFileCollection.java:76)
	at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.iterator(DefaultConfiguration.java:439)
	at sun.reflect.GeneratedMethodAccessor419.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98)
	at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
	at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1225)
	at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034)
	at org.codehaus.groovy.runtime.InvokerHelper.invokePogoMethod(InvokerHelper.java:947)
	at org.codehaus.groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.java:930)
	at org.codehaus.groovy.runtime.InvokerHelper.asIterator(InvokerHelper.java:595)
	at org.codehaus.groovy.runtime.DefaultGroovyMethods.collect(DefaultGroovyMethods.java:3240)
	at org.codehaus.groovy.runtime.DefaultGroovyMethods.collect(DefaultGroovyMethods.java:3212)
	at org.codehaus.groovy.runtime.dgm$66.invoke(Unknown Source)
	at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoMetaMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:251)
	at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.call(PogoMetaMethodSite.java:71)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:128)
	at internal.source.gradle.duplicateFinderTask$_run_closure7.doCall(duplicateFinderTask.groovy:77)
	at sun.reflect.GeneratedMethodAccessor415.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98)
	at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
	at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:264)
	at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034)
	at groovy.lang.Closure.call(Closure.java:418)
	at groovy.lang.Closure.call(Closure.java:434)
	at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2125)
	at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2110)
	at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2163)
	at org.codehaus.groovy.runtime.dgm$165.invoke(Unknown Source)
	at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoMetaMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:251)
	at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.call(PogoMetaMethodSite.java:71)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:128)
	at internal.source.gradle.duplicateFinderTask.run(duplicateFinderTask.groovy:66)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
	at org.gradle.api.internal.project.taskfactory.StandardTaskAction.doExecute(StandardTaskAction.java:46)
	at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:39)
	at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:26)
	at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:801)
	at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:768)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:131)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:300)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:292)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:174)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
	at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:120)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:99)
	... 36 more
Caused by: org.gradle.internal.resolve.ModuleVersionResolveException: Could not resolve project :other:java-project.
Required by:
    project :a-scala-project
	at org.gradle.api.internal.artifacts.ivyservice.resolveengine.graph.builder.EdgeState.calculateTargetConfigurations(EdgeState.java:169)
	at org.gradle.api.internal.artifacts.ivyservice.resolveengine.graph.builder.EdgeState.attachToTargetConfigurations(EdgeState.java:112)
	at org.gradle.api.internal.artifacts.ivyservice.resolveengine.graph.builder.DependencyGraphBuilder.attachToTargetRevisionsSerially(DependencyGraphBuilder.java:315)
	at org.gradle.api.internal.artifacts.ivyservice.resolveengine.graph.builder.DependencyGraphBuilder.resolveEdges(DependencyGraphBuilder.java:202)
	at org.gradle.api.internal.artifacts.ivyservice.resolveengine.graph.builder.DependencyGraphBuilder.traverseGraph(DependencyGraphBuilder.java:155)
	at org.gradle.api.internal.artifacts.ivyservice.resolveengine.graph.builder.DependencyGraphBuilder.resolve(DependencyGraphBuilder.java:126)
	at org.gradle.api.internal.artifacts.ivyservice.resolveengine.DefaultArtifactDependencyResolver.resolve(DefaultArtifactDependencyResolver.java:123)
	at org.gradle.api.internal.artifacts.ivyservice.DefaultConfigurationResolver.resolveGraph(DefaultConfigurationResolver.java:167)
	at org.gradle.api.internal.artifacts.ivyservice.ShortCircuitEmptyConfigurationResolver.resolveGraph(ShortCircuitEmptyConfigurationResolver.java:89)
	at org.gradle.api.internal.artifacts.ivyservice.ErrorHandlingConfigurationResolver.resolveGraph(ErrorHandlingConfigurationResolver.java:73)
	at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration$5.run(DefaultConfiguration.java:533)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:300)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:292)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:174)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
	at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
	at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.resolveGraphIfRequired(DefaultConfiguration.java:524)
	at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.resolveToStateOrLater(DefaultConfiguration.java:509)
	at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.access$1800(DefaultConfiguration.java:123)
	at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration$ConfigurationFileCollection.getSelectedArtifacts(DefaultConfiguration.java:1037)
	at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration$ConfigurationFileCollection.getFiles(DefaultConfiguration.java:1025)
	... 90 more
Caused by: org.gradle.internal.component.NoMatchingConfigurationSelectionException: Unable to find a matching variant of project :other:java-project:
  - Variant 'apiElements': Required org.gradle.usage 'incremental-analysis' and found incompatible value 'java-api'.
  - Variant 'runtimeElements': Required org.gradle.usage 'incremental-analysis' and found incompatible value 'java-runtime-jars'.
	at org.gradle.internal.component.model.AttributeConfigurationSelector.selectConfigurationUsingAttributeMatching(AttributeConfigurationSelector.java:46)
	at org.gradle.internal.component.model.LocalComponentDependencyMetadata.selectConfigurations(LocalComponentDependencyMetadata.java:117)
	at org.gradle.internal.component.local.model.DslOriginDependencyMetadataWrapper.selectConfigurations(DslOriginDependencyMetadataWrapper.java:60)
	at org.gradle.api.internal.artifacts.ivyservice.resolveengine.graph.builder.EdgeState.calculateTargetConfigurations(EdgeState.java:166)
	... 110 more

@big-guy
Copy link
Member Author

big-guy commented Sep 19, 2018

@dsilvasc could you share a reproducible build? What's duplicateFinder?

And please open a new issue so this doesn't get lost.

@rpalcolea
Copy link
Contributor

rpalcolea commented Sep 19, 2018

We are seeing the same results with 4.10.2

used by: org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration$ArtifactResolveException: Could not resolve all files for configuration ':incrementalScalaAnalysisFormain'.
        at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.rethrowFailure(DefaultConfiguration.java:1054)
        at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.access$1700(DefaultConfiguration.java:123)
        at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration$ConfigurationFileCollection.getFiles(DefaultConfiguration.java:1028)
        at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.getFiles(DefaultConfiguration.java:444)
        at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration_Decorated.getFiles(Unknown Source)
        at 
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:99)
        ... 31 more
Caused by: org.gradle.internal.component.NoMatchingVariantSelectionException: No variants of MY_LIBRARY match the consumer attributes:MY_LIBRARY configuration default:
  - Found artifactType 'jar' but wasn't required.
  - Found org.gradle.status 'release' but wasn't required.
  - Required org.gradle.usage 'incremental-analysis' and found incompatible value 'java-runtime-jars'.

        at org.gradle.api.internal.artifacts.transform.AttributeMatchingVariantSelector.doSelect(AttributeMatchingVariantSelector.java:108)
        at org.gradle.api.internal.artifacts.transform.AttributeMatchingVariantSelector.select(AttributeMatchingVariantSelector.java:65)
        at org.gradle.api.internal.artifacts.ivyservice.resolveengine.artifact.DefaultArtifactSet.select(DefaultArtifactSet.java:133)
        at org.gradle.api.internal.artifacts.ivyservice.resolveengine.artifact.DefaultVisitedArtifactResults.select(DefaultVisitedArtifactResults.java:48)
        at org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration.select(DefaultLenientConfiguration.java:112)
        at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration$ConfigurationFileCollection.getSelectedArtifacts(DefaultConfiguration.java:1038)
        at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration$ConfigurationFileCollection.getFiles(DefaultConfiguration.java:1025)

- Required org.gradle.usage 'incremental-analysis' and found incompatible value 'java-runtime-jars'.

@dsilvasc
Copy link

@big-guy It's an in-house plugin -- let me see if I can trim it down to a minimal repro...

@big-guy
Copy link
Member Author

big-guy commented Sep 20, 2018

Thanks @dsilvasc!

Do you happen to have a task that takes all configurations in a project and resolves them?

@rpalcolea a reproduction case would be helpful or some description of the task that's failing.

@dsilvasc
Copy link

@big-guy yes, the task starts with

project.configurations.each { configuration ->
  if (!configuration.isCanBeResolved()) {
    return
  }
  ...
}

The goal there is to find all jars in all configurations, unzip them, list all the classes, find classes that appear in multiple jars (multiple dependencies), and fail the build if there are any.

Similar to these:
https://plugins.gradle.org/plugin/net.idlestate.gradle-duplicate-classes-check
https://github.com/nebula-plugins/gradle-lint-plugin/wiki/Duplicate-Classes-Rule

@big-guy
Copy link
Member Author

big-guy commented Sep 20, 2018

@dsilvasc as a workaround to get you going again, you can try:

configurations.all {
    if (name.startsWith("incrementalScalaAnalysis")) {
        extendsFrom = []
    }
}

Sorry for all the trouble.

@dsilvasc
Copy link

@big-guy Thanks -- that fixes it.

@rpalcolea
Copy link
Contributor

Hi @big-guy, while this might fix the issue. Is there any work on gradle side to prevent the need for this workaround? can this issue be re-open?

@big-guy
Copy link
Member Author

big-guy commented Sep 21, 2018

@rpalcolea Yes, I've looked at fixing it. I won't reopen this issue since it's slightly different (but related). I created #6854

@rpalcolea
Copy link
Contributor

Awesome! thank you!

@lure
Copy link

lure commented Dec 4, 2018

Either I miss something or this bug persists in Gradle 5.0

Caused by: java.lang.NoClassDefFoundError: scala/Product$class
        at com.typesafe.zinc.JarFile.<init>(Setup.scala:28)

The project itself contains just hello world with dummy case class.
Do I miss something?

@big-guy
Copy link
Member Author

big-guy commented Dec 4, 2018

@lure That's a very different looking problem. Could you open a new issue with a reproducible example? Did the project work with an earlier version of Gradle?

@lure
Copy link

lure commented Dec 4, 2018

It seems that the issue is somewhere in my gradle build files. It cant be reproduced on helloworld example. Basically, I have multi-module project with

subprojects {
    apply plugin: 'java'
    apply plugin: 'scala'
    dependencies {
        compile 'org.scala-lang:scala-library:2.12.6'
    }
    sourceCompatibility = '1.8'
    targetCompatibility = '1.8'
    tasks.withType(JavaCompile) {
        options.encoding = 'UTF-8'
    }
    configurations.all {
        resolutionStrategy.force "org.scala-lang:scala-library:2.12.6"
    }
}

And buildfile in module

dependencies {
    compile "org.scala-lang:scala-library:2.12.6"
    compile 'org.scalatest:scalatest_2.12:3.0.5'
    testCompile 'junit:junit:4.12'

and then

$gradle :grcheck:build
> Task :grcheck:compileScala FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':grcheck:compileScala'.
> scala/Product$class

@big-guy
Copy link
Member Author

big-guy commented Dec 4, 2018

@lure would you be able to create a build scan for the failing build?

@lure
Copy link

lure commented Dec 4, 2018

upd, for clarification purposes:

configurations.all {
    resolutionStrategy.force "org.scala-lang:scala-library:2.12.6"
}

causes the failures mentioned above. If removed - everything works smoothly

@alexeyOnGitHub
Copy link

same (or similarly looking) problem with Gradle 4.10.3, Scala project. this snippet helps:

configurations.all {
    if (name.startsWith("incrementalScalaAnalysis")) {
        extendsFrom = []
    }
}

@mockitoguy
Copy link
Contributor

We're experiencing this issue with Gradle 5.6.4. The workaround with extendsFrom works like a charm. Our error is:

org.gradle.api.artifacts.ResolveException: Could not resolve all dependencies for configuration ':gobblin-kafka-streaming-validation-flows:incrementalScalaAnalysisFormain'.
Caused by: java.lang.RuntimeException: Problems reading data from Binary store in
Caused by: java.lang.NullPointerException

Full stack trace: https://gist.github.com/mockitoguy/b5b5fb3d172ee2374d5c603edb0151ea

@monosoul
Copy link
Contributor

I've spent quite a few sleepless hours trying to figure out what's wrong. At least I found this thread. Still reproducible with Gradle 6.8.3.

@timmalich
Copy link

I've spent quite a few sleepless hours trying to figure out what's wrong. At least I found this thread. Still reproducible with Gradle 6.8.3.

Had the same issue after upgrading to grade 7.1.1

I put the suggestion from alexeyOnGitHub into my build.gradle and the error disappeared.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests