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

No dependency substitution happens for Version Catalogs included as separate build #18847

Open
little-fish opened this issue Nov 3, 2021 · 22 comments

Comments

@little-fish
Copy link

little-fish commented Nov 3, 2021

When using composite build and including Version Catalogs plugin project, no dependency substitution happens.

Expected Behavior

Dependency specified with GAV should be substituted with included build.

Current Behavior

settings.gradle:

enableFeaturePreview("VERSION_CATALOGS")

includeBuild("version-catalog")

dependencyResolutionManagement {
    versionCatalogs {
        libs {
            from("foo.bar:version-catalog:1.0.0-SNAPSHOT")
        }
    }
}

version-catalog/build.gradle:

plugins {
    id "version-catalog"
    id "maven-publish"
}

version = "1.0.0-SNAPSHOT"
group = "foo.bar"

publishing {
    publications {
        versionCatalog(MavenPublication) {
            from components.versionCatalog
        }
    }
}

catalog {
    versionCatalog {
        version("kotlin", "1.5.31")
        alias("org.jetbrains.kotlin.plugin.serialization").toPluginId("org.jetbrains.kotlin.plugin.serialization").versionRef("kotlin")
    }
}

Following exception is thrown:

FAILURE: Build failed with an exception.

* What went wrong:
Could not resolve all artifacts for configuration 'incomingCatalogForLibs0'.
> Could not find foo.bar:version-catalog:1.0.0-SNAPSHOT.
  Searched in the following locations:
    - file:/C:/Users/xxx/.m2/repository/foo/bar/version-catalog/1.0.0-SNAPSHOT/maven-metadata.xml
    - file:/C:/Users/xxx/.m2/repository/foo/bar/version-catalog/1.0.0-SNAPSHOT/version-catalog-1.0.0-SNAPSHOT.pom
  Required by:
      unspecified:unspecified:unspecified

* Try:
Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Exception is:
org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration$ArtifactResolveException: Could not resolve all artifacts for configuration 'incomingCatalogForLibs0'.
	at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.rethrowFailure(DefaultConfiguration.java:1419)
	at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.access$3600(DefaultConfiguration.java:152)
	at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration$DefaultResolutionHost.rethrowFailure(DefaultConfiguration.java:2031)
	at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration$ConfigurationArtifactCollection.lambda$new$0(DefaultConfiguration.java:1975)
	at org.gradle.internal.model.CalculatedValueContainerFactory$SupplierBackedCalculator.calculateValue(CalculatedValueContainerFactory.java:81)
	at org.gradle.internal.model.CalculatedValueContainer$CalculationState.lambda$attachValue$0(CalculatedValueContainer.java:218)
	at org.gradle.internal.Try.ofFailable(Try.java:41)
	at org.gradle.internal.model.CalculatedValueContainer$CalculationState.attachValue(CalculatedValueContainer.java:213)
	at org.gradle.internal.model.CalculatedValueContainer.finalizeIfNotAlready(CalculatedValueContainer.java:186)
	at org.gradle.internal.model.CalculatedValueContainer.finalizeIfNotAlready(CalculatedValueContainer.java:177)
	at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration$ConfigurationArtifactCollection.ensureResolved(DefaultConfiguration.java:2011)
	at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration$ConfigurationArtifactCollection.getArtifacts(DefaultConfiguration.java:1988)
	at org.gradle.api.internal.catalog.DefaultVersionCatalogBuilder.maybeImportCatalogs(DefaultVersionCatalogBuilder.java:170)
	at org.gradle.api.internal.catalog.DefaultVersionCatalogBuilder.doBuild(DefaultVersionCatalogBuilder.java:134)
	at org.gradle.internal.lazy.UnsafeLazy.ensureValue(UnsafeLazy.java:39)
	at org.gradle.internal.lazy.UnsafeLazy.get(UnsafeLazy.java:34)
	at org.gradle.api.internal.catalog.DefaultVersionCatalogBuilder.build(DefaultVersionCatalogBuilder.java:120)
	at org.gradle.api.internal.catalog.DefaultDependenciesAccessors.generateAccessors(DefaultDependenciesAccessors.java:123)
	at org.gradle.configuration.BuildTreePreparingProjectsPreparer.generateDependenciesAccessorsAndAssignPluginVersions(BuildTreePreparingProjectsPreparer.java:92)
	at org.gradle.configuration.BuildTreePreparingProjectsPreparer.prepareProjects(BuildTreePreparingProjectsPreparer.java:54)
	at org.gradle.configuration.BuildOperationFiringProjectsPreparer$ConfigureBuild.run(BuildOperationFiringProjectsPreparer.java:52)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:56)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$run$1(DefaultBuildOperationExecutor.java:74)
	at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.runWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:45)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:74)
	at org.gradle.configuration.BuildOperationFiringProjectsPreparer.prepareProjects(BuildOperationFiringProjectsPreparer.java:40)
	at org.gradle.initialization.VintageBuildModelController.prepareProjects(VintageBuildModelController.java:97)
	at org.gradle.initialization.VintageBuildModelController.doBuildStages(VintageBuildModelController.java:77)
	at org.gradle.initialization.VintageBuildModelController.prepareToScheduleTasks(VintageBuildModelController.java:64)
	at org.gradle.internal.build.DefaultBuildLifecycleController.lambda$prepareToScheduleTasks$0(DefaultBuildLifecycleController.java:104)
	at org.gradle.internal.build.DefaultBuildLifecycleController.lambda$withModelOrThrow$5(DefaultBuildLifecycleController.java:142)
	at org.gradle.internal.build.DefaultBuildLifecycleController.withModel(DefaultBuildLifecycleController.java:157)
	at org.gradle.internal.build.DefaultBuildLifecycleController.withModelOrThrow(DefaultBuildLifecycleController.java:140)
	at org.gradle.internal.build.DefaultBuildLifecycleController.prepareToScheduleTasks(DefaultBuildLifecycleController.java:102)
	at org.gradle.internal.buildtree.DefaultBuildTreeWorkPreparer.scheduleRequestedTasks(DefaultBuildTreeWorkPreparer.java:33)
	at org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController.lambda$doScheduleAndRunTasks$1(DefaultBuildTreeLifecycleController.java:83)
	at org.gradle.composite.internal.DefaultIncludedBuildTaskGraph.withNewTaskGraph(DefaultIncludedBuildTaskGraph.java:94)
	at org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController.doScheduleAndRunTasks(DefaultBuildTreeLifecycleController.java:82)
	at org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController.lambda$fromBuildModel$0(DefaultBuildTreeLifecycleController.java:71)
	at org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController.runBuild(DefaultBuildTreeLifecycleController.java:104)
	at org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController.fromBuildModel(DefaultBuildTreeLifecycleController.java:69)
	at org.gradle.tooling.internal.provider.runner.AbstractClientProvidedBuildActionRunner.runClientAction(AbstractClientProvidedBuildActionRunner.java:56)
	at org.gradle.tooling.internal.provider.runner.ClientProvidedPhasedActionRunner.run(ClientProvidedPhasedActionRunner.java:53)
	at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
	at org.gradle.internal.buildtree.ProblemReportingBuildActionRunner.run(ProblemReportingBuildActionRunner.java:47)
	at org.gradle.launcher.exec.BuildOutcomeReportingBuildActionRunner.run(BuildOutcomeReportingBuildActionRunner.java:69)
	at org.gradle.tooling.internal.provider.FileSystemWatchingBuildActionRunner.run(FileSystemWatchingBuildActionRunner.java:91)
	at org.gradle.launcher.exec.BuildCompletionNotifyingBuildActionRunner.run(BuildCompletionNotifyingBuildActionRunner.java:41)
	at org.gradle.launcher.exec.RootBuildLifecycleBuildActionExecutor.lambda$execute$0(RootBuildLifecycleBuildActionExecutor.java:40)
	at org.gradle.composite.internal.DefaultRootBuildState.run(DefaultRootBuildState.java:154)
	at org.gradle.launcher.exec.RootBuildLifecycleBuildActionExecutor.execute(RootBuildLifecycleBuildActionExecutor.java:40)
	at org.gradle.internal.buildtree.DefaultBuildTreeContext.execute(DefaultBuildTreeContext.java:40)
	at org.gradle.launcher.exec.BuildTreeLifecycleBuildActionExecutor.lambda$execute$0(BuildTreeLifecycleBuildActionExecutor.java:56)
	at org.gradle.internal.buildtree.BuildTreeState.run(BuildTreeState.java:53)
	at org.gradle.launcher.exec.BuildTreeLifecycleBuildActionExecutor.execute(BuildTreeLifecycleBuildActionExecutor.java:56)
	at org.gradle.launcher.exec.RunAsBuildOperationBuildActionExecutor$3.call(RunAsBuildOperationBuildActionExecutor.java:61)
	at org.gradle.launcher.exec.RunAsBuildOperationBuildActionExecutor$3.call(RunAsBuildOperationBuildActionExecutor.java:57)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:200)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:195)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:62)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$call$2(DefaultBuildOperationExecutor.java:79)
	at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.callWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:54)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:79)
	at org.gradle.launcher.exec.RunAsBuildOperationBuildActionExecutor.execute(RunAsBuildOperationBuildActionExecutor.java:57)
	at org.gradle.launcher.exec.RunAsWorkerThreadBuildActionExecutor.lambda$execute$0(RunAsWorkerThreadBuildActionExecutor.java:38)
	at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:211)
	at org.gradle.launcher.exec.RunAsWorkerThreadBuildActionExecutor.execute(RunAsWorkerThreadBuildActionExecutor.java:38)
	at org.gradle.tooling.internal.provider.ContinuousBuildActionExecutor.execute(ContinuousBuildActionExecutor.java:103)
	at org.gradle.tooling.internal.provider.SubscribableBuildActionExecutor.execute(SubscribableBuildActionExecutor.java:64)
	at org.gradle.internal.session.DefaultBuildSessionContext.execute(DefaultBuildSessionContext.java:46)
	at org.gradle.tooling.internal.provider.BuildSessionLifecycleBuildActionExecuter.lambda$execute$0(BuildSessionLifecycleBuildActionExecuter.java:56)
	at org.gradle.internal.session.BuildSessionState.run(BuildSessionState.java:69)
	at org.gradle.tooling.internal.provider.BuildSessionLifecycleBuildActionExecuter.execute(BuildSessionLifecycleBuildActionExecuter.java:55)
	at org.gradle.tooling.internal.provider.BuildSessionLifecycleBuildActionExecuter.execute(BuildSessionLifecycleBuildActionExecuter.java:37)
	at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:36)
	at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:25)
	at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:63)
	at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:31)
	at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:58)
	at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:42)
	at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:47)
	at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:31)
	at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:65)
	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.internal.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:84)
	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:61)
Caused by: org.gradle.internal.resolve.ModuleVersionNotFoundException: Could not find foo.bar:version-catalog:1.0.0-SNAPSHOT.
Searched in the following locations:
  - file:/C:/Users/xxx/.m2/repository/foo/bar/version-catalog/1.0.0-SNAPSHOT/maven-metadata.xml
  - file:/C:/Users/xxx/.m2/repository/foo/bar/version-catalog/1.0.0-SNAPSHOT/version-catalog-1.0.0-SNAPSHOT.pom
    unspecified:unspecified:unspecified

* Get more help at https://help.gradle.org

BUILD FAILED in 482ms

Context

We have multiple SCM repositories within our department. core for shared libraries and impl ones which depends on core.
Within the core library we want to have a version-catalog plugin which can be used within core repo itself (as an included build) and within impl repositories (with composition builds enabled/disabled).

Your Environment

Gradle 7.2.

@little-fish little-fish changed the title Apply Version Catalog from project Apply Version Catalog from project dependency handler not working Nov 3, 2021
@octylFractal octylFractal self-assigned this Nov 3, 2021
@little-fish
Copy link
Author

Is there any workaround I can try?

@melix
Copy link
Contributor

melix commented Nov 4, 2021

This isn't a bug but a consequence of the design. The project you want to import is in the same build. This means that itself, would have access to the catalog defined in settings. Therefore, it cannot participate in the definition of the catalog.

The workaround is easy: instead of using a project to declare your catalog, make it a distinct build and include it.

@little-fish
Copy link
Author

little-fish commented Nov 4, 2021

Thanks for the information.
I have tried your suggestion, but it didn't work for me. Or I do not know how to apply it:
settings.gradle:

includeBuild("plugin-version-catalog")

dependencyResolutionManagement {
    versionCatalogs {
        libs {
            from("g:plugin-version-catalog:v")
        }
    }
}

And I got this error:

Could not resolve all artifacts for configuration 'incomingCatalogForLibs0'.
> Could not find g:plugin-version-catalog:v.
  Searched in the following locations:
...
Possible solution:
 - Declare repository providing the artifact, see the documentation at https://docs.gradle.org/current/userguide/declaring_repositories.html

So no dependency substitution happened. Am I missing something?

@melix
Copy link
Contributor

melix commented Nov 4, 2021

mmm, no you're correct, I thought the substitution would automatically apply but it's not the case.

@little-fish
Copy link
Author

So should I close this very issue and create new one describing the substitution problem with composite build?

@octylFractal
Copy link
Member

I would appreciate it if you could simply edit this one to describe the correct issue with included builds, I was planning to have this same discussion and use this ticket if that bug existed.

@little-fish little-fish changed the title Apply Version Catalog from project dependency handler not working No dependency substitution happens for Version Catalogs included as separate build Nov 5, 2021
@little-fish
Copy link
Author

The ticket is updated. Thank you for your help.

@octylFractal octylFractal added this to the 7.5 RC1 milestone Dec 20, 2021
@big-guy big-guy added the @core Issue owned by GBT Core label Mar 15, 2022
@big-guy big-guy modified the milestones: 7.5 RC1, 7.6 RC1 Mar 17, 2022
@Phlegethon90
Copy link

@little-fish i got mine working. when you have multiple included builds, the order in the settings.gradle.kts does matter.

@big-guy big-guy modified the milestones: 7.6 RC1, 8.0 RC1 Jul 1, 2022
@big-guy big-guy modified the milestones: 8.0 RC1, 8.1 RC1 Oct 21, 2022
@skaluva
Copy link

skaluva commented Nov 16, 2022

Facing the same issue.. Im using gradle 7.2. Any workaround for this?
@Phlegethon90 how did you fix it?

@skaluva
Copy link

skaluva commented Nov 16, 2022

@big-guy i see milestone for this is 8.0 RC1/ 8.1 RC1 which is way long. Is there any work around for now in 7.2 or above versions? bcoz everytime publishing to artifactory and then using it is cumbersome.

@rsicarelli
Copy link

rsicarelli commented Jan 13, 2023

I fixed my issue by renaming the published catalog artifact from version-catalog to versioncatalog:

Producer:

//build.gradle.kts
publishing {
    publications {
        register<MavenPublication>("catalog") {
            from(components["versionCatalog"])
            group = "com.org"
            artifactId = "versioncatalog" //renamed from version-catalog
            version = "1.0"
        }
    }

    repositories { ... }
}

Consumer:

//settings.gradle.kts
dependencyResolutionManagement {
    repositories { .. }
    versionCatalogs {
        create("libs").from("com.org:versioncatalog:1.0")

        // fails with "Could not resolve all artifacts for configuration 'incomingCatalogForLibs0'." 
        // create("libs").from("com.org:version-catalog:1.0")
    }

More context

  • The artefactId was declared as version-catalog for weeks and still works on some colleagues' machines (tested on the same branch)
  • It stopped working for me when I published a new version to maven local. I changed the version to my local catalog, and once I tried to add the previous back, I got the error.
  • I manually deleted all catalogs from our maven registry (yolo), and published a new one using the changes, still same error.
  • I tried deleted .m2 (maven local) folder and .gradle/caches
  • ✅ Publishing to maven local works with version-catalog as artefactId

Edit 1
I got the Could not resolve all artifacts for configuration 'incomingCatalogForLibs0'. a couple times again, even with the solution above. How I fixed:

  1. Deleted userhome/.gradle/cache
  2. Deleted project .idea and .gradle folders
  3. Invalidated caches and restart
  4. Working again!

@hakjac
Copy link

hakjac commented Feb 1, 2023

Tried with 8.0 RC2 but problem remain. Using

includeBuild '<path-to-my-version-catalog>' 

does not substitute the one pointed out from settings.gradle

dependencyResolutionManagement {
    externalLibs {
      from("g.<my-version-catalog>.v")
    }
  }
}

@big-guy big-guy removed the @core Issue owned by GBT Core label Oct 3, 2023
@elect86
Copy link

elect86 commented Oct 15, 2023

Any news on this one?

I'm using the Setting API to generate the catalog:

class SciJavaCatalogPlugin : Plugin<Settings> {

    override fun apply(settings: Settings) {

        settings.dependencyResolutionManagement.versionCatalogs.addGeneratedCatalog() // this is generated
    }
}

but still no dependency substitution takes place..

@Vampire
Copy link
Contributor

Vampire commented Oct 30, 2023

Same with 8.4

@cherni78
Copy link

cherni78 commented Dec 1, 2023

I know its not the best solution, but works as a workaround, temporary!
You can directly point to your toml file from your version catalog project for a composite build.
Like so:

  versionCatalogs {
    libs {
      from(files("pathToVersionCatalogRepo/libs.versions.toml"))
    }
  }

@yuvaraj119
Copy link

still facing issue with gradle version-8.5

@yuvaraj119
Copy link

yuvaraj119 commented Jun 3, 2024

I see why it is happening. In module file the versionCatalogElements variant is missing.
"variants": [ { "name": "versionCatalogElements", "attributes": { "org.gradle.category": "platform", "org.gradle.usage": "version-catalog" }, "files": [ { "name": "gradle-version-catalog-0.1.1-SNAPSHOT.toml", "url": "gradle-version-catalog-0.1.1-SNAPSHOT.toml", "size": 18559, "sha512": "xxxxx", "sha256": "xxxxxxx", "sha1": "xxxxxxxxxxxxx", "md5": "xxxxxxxxxxxxxxx" } ] } ]
If in module file this is present then it will work.

Most of the time when i publish i see apiElements and runtimeElements variants not versionCatalogElements.
Not use which publish configuration make this possible to add versionCatalogElements variants

@Vampire
Copy link
Contributor

Vampire commented Jun 3, 2024

You probably publish the java component instead of the versionCatalog component.

@yuvaraj119
Copy link

yuvaraj119 commented Jun 4, 2024

You probably publish the java component instead of the versionCatalog component.

I tried with java it is same. With java the mavenPublishLocal is setting variant as apiElements and runtimeElements
expected is versionCatalogElements variant.

Currently with versionCatalog and mavenPublishLocal works good.

I think the issue is with Jfrog publish which ignores the versionCatalog which holds versionCatalogElements and publishs only publishMaven which holds apiElements and runtimeElements

Created a issue:
jfrog/artifactory-gradle-plugin#113

Not sure it is gradle issue or jfrog plugin issue.

@Vampire
Copy link
Contributor

Vampire commented Jun 4, 2024

I tried with java it is same. With java the mavenPublishLocal is setting variant as apiElements and runtimeElements
expected is versionCatalogElements variant.

Sure, you did the opposite of what I said.

I think the issue is with Jfrog publish

Quite possible, I often heard of strange things in their plugin.
Afaik, you can just use maven-publish and do not use their plugin.

@yuvaraj119
Copy link

yuvaraj119 commented Jun 5, 2024

I tried with java it is same. With java the mavenPublishLocal is setting variant as apiElements and runtimeElements
expected is versionCatalogElements variant.

Sure, you did the opposite of what I said.

I think the issue is with Jfrog publish

Quite possible, I often heard of strange things in their plugin. Afaik, you can just use maven-publish and do not use their plugin.

@Vampire Do you have any sample how can we use maven-publish to publish the artifacts in Jfrog artifactory.

@Vampire
Copy link
Contributor

Vampire commented Jun 5, 2024

Nope, sorry, never used Artifactory, but I know that multiple people were pretty happy to just use maven-publish and get rid of the JFrog plugin. But if you have further questions to that, I suggest you ask somewhere else like the Forums, Slack, or StackOverflow, as it slightly gets a bit off-topic here. :-)

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