You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@grails.apache.org by jd...@apache.org on 2025/07/27 02:32:35 UTC
(incubator-grails-gradle-publish) branch 7.0.x updated: feat: allow turning off the dependency validation
This is an automated email from the ASF dual-hosted git repository.
jdaugherty pushed a commit to branch 7.0.x
in repository https://gitbox.apache.org/repos/asf/incubator-grails-gradle-publish.git
The following commit(s) were added to refs/heads/7.0.x by this push:
new d419958 feat: allow turning off the dependency validation
d419958 is described below
commit d4199589b153a6cbd859149e71a906d38a532c01
Author: James Daugherty <jd...@jdresources.net>
AuthorDate: Sat Jul 26 22:32:09 2025 -0400
feat: allow turning off the dependency validation
---
.../gradle/publish/GrailsPublishExtension.groovy | 8 ++-
.../publish/GrailsPublishGradlePlugin.groovy | 68 +++++++++++-----------
2 files changed, 42 insertions(+), 34 deletions(-)
diff --git a/plugin/src/main/groovy/org/apache/grails/gradle/publish/GrailsPublishExtension.groovy b/plugin/src/main/groovy/org/apache/grails/gradle/publish/GrailsPublishExtension.groovy
index 21d0a2e..d80dbf6 100644
--- a/plugin/src/main/groovy/org/apache/grails/gradle/publish/GrailsPublishExtension.groovy
+++ b/plugin/src/main/groovy/org/apache/grails/gradle/publish/GrailsPublishExtension.groovy
@@ -121,6 +121,11 @@ class GrailsPublishExtension {
*/
final Property<Directory> testRepositoryPath
+ /**
+ * Validate that any transitive dependency has a version set in the pom & try to set it if not defined
+ */
+ final Property<Boolean> transitiveDependencies
+
@Inject
GrailsPublishExtension(ObjectFactory objects, Project project) {
githubSlug = objects.property(String).convention(
@@ -164,9 +169,10 @@ class GrailsPublishExtension {
project.group as String
})
publishTestSources = objects.property(Boolean).convention(false)
+ testRepositoryPath = objects.directoryProperty().convention(null as Directory)
addComponents = objects.property(Boolean).convention(true)
publicationName = objects.property(String).convention('maven')
- testRepositoryPath = objects.directoryProperty().convention(null as Directory)
+ transitiveDependencies = objects.property(Boolean).convention(true)
}
License getLicense() {
diff --git a/plugin/src/main/groovy/org/apache/grails/gradle/publish/GrailsPublishGradlePlugin.groovy b/plugin/src/main/groovy/org/apache/grails/gradle/publish/GrailsPublishGradlePlugin.groovy
index de25251..e0728d7 100644
--- a/plugin/src/main/groovy/org/apache/grails/gradle/publish/GrailsPublishGradlePlugin.groovy
+++ b/plugin/src/main/groovy/org/apache/grails/gradle/publish/GrailsPublishGradlePlugin.groovy
@@ -377,39 +377,41 @@ Note: if project properties are used, the properties must be defined prior to ap
}
// fix dependencies without a version
- def mavenPomNamespace = 'http://maven.apache.org/POM/4.0.0'
- def dependenciesQName = new QName(mavenPomNamespace, 'dependencies')
- def dependencyQName = new QName(mavenPomNamespace, 'dependency')
- def versionQName = new QName(mavenPomNamespace, 'version')
- def groupIdQName = new QName(mavenPomNamespace, 'groupId')
- def artifactIdQName = new QName(mavenPomNamespace, 'artifactId')
- def nodes = (pomNode.getAt(dependenciesQName) as NodeList)
- if (nodes) {
- def dependencyNodes = (nodes.first() as Node).getAt(dependencyQName)
- dependencyNodes.findAll { dependencyNode ->
- def versionNodes = (dependencyNode as Node).getAt(versionQName)
- return versionNodes.size() == 0 || (versionNodes.first() as Node).text().isEmpty()
- }.each { dependencyNode ->
- def groupId = ((dependencyNode as Node).getAt(groupIdQName).first() as Node).text()
- def artifactId = ((dependencyNode as Node).getAt(artifactIdQName).first() as Node).text()
- def resolvedArtifacts = project.configurations.compileClasspath.resolvedConfiguration.resolvedArtifacts +
- project.configurations.runtimeClasspath.resolvedConfiguration.resolvedArtifacts
- if (project.configurations.hasProperty('testFixturesCompileClasspath')) {
- resolvedArtifacts += project.configurations.testFixturesCompileClasspath.resolvedConfiguration.resolvedArtifacts +
- project.configurations.testFixturesRuntimeClasspath.resolvedConfiguration.resolvedArtifacts
- }
- def managedVersion = resolvedArtifacts.find {
- it.moduleVersion.id.group == groupId &&
- it.moduleVersion.id.name == artifactId
- }?.moduleVersion?.id?.version
- if (!managedVersion) {
- throw new RuntimeException("No version found for dependency $groupId:$artifactId.")
- }
- def versionNode = (dependencyNode as Node).getAt(versionQName)
- if (versionNode) {
- (versionNode.first() as Node).value = managedVersion
- } else {
- (dependencyNode as Node).appendNode('version', managedVersion)
+ if (gpe.transitiveDependencies.get()) {
+ def mavenPomNamespace = 'http://maven.apache.org/POM/4.0.0'
+ def dependenciesQName = new QName(mavenPomNamespace, 'dependencies')
+ def dependencyQName = new QName(mavenPomNamespace, 'dependency')
+ def versionQName = new QName(mavenPomNamespace, 'version')
+ def groupIdQName = new QName(mavenPomNamespace, 'groupId')
+ def artifactIdQName = new QName(mavenPomNamespace, 'artifactId')
+ def nodes = (pomNode.getAt(dependenciesQName) as NodeList)
+ if (nodes) {
+ def dependencyNodes = (nodes.first() as Node).getAt(dependencyQName)
+ dependencyNodes.findAll { dependencyNode ->
+ def versionNodes = (dependencyNode as Node).getAt(versionQName)
+ return versionNodes.size() == 0 || (versionNodes.first() as Node).text().isEmpty()
+ }.each { dependencyNode ->
+ def groupId = ((dependencyNode as Node).getAt(groupIdQName).first() as Node).text()
+ def artifactId = ((dependencyNode as Node).getAt(artifactIdQName).first() as Node).text()
+ def resolvedArtifacts = project.configurations.compileClasspath.resolvedConfiguration.resolvedArtifacts +
+ project.configurations.runtimeClasspath.resolvedConfiguration.resolvedArtifacts
+ if (project.configurations.hasProperty('testFixturesCompileClasspath')) {
+ resolvedArtifacts += project.configurations.testFixturesCompileClasspath.resolvedConfiguration.resolvedArtifacts +
+ project.configurations.testFixturesRuntimeClasspath.resolvedConfiguration.resolvedArtifacts
+ }
+ def managedVersion = resolvedArtifacts.find {
+ it.moduleVersion.id.group == groupId &&
+ it.moduleVersion.id.name == artifactId
+ }?.moduleVersion?.id?.version
+ if (!managedVersion) {
+ throw new RuntimeException("No version found for dependency $groupId:$artifactId.")
+ }
+ def versionNode = (dependencyNode as Node).getAt(versionQName)
+ if (versionNode) {
+ (versionNode.first() as Node).value = managedVersion
+ } else {
+ (dependencyNode as Node).appendNode('version', managedVersion)
+ }
}
}
}