Skip to content

Commit d313d38

Browse files
fadidurahCopilot
andcommitted
Fix POM: write current version for project deps to avoid 'unspecified'
The publishing block in testutils and uiautomationutilities iterates implementation dependencies to populate the generated POM. For project deps like project(':keyvault'), it.version reads project(':keyvault').version -- which Gradle defaults to the string 'unspecified' if that sibling project hasn't been configured yet. With Gradle configure-on-demand enabled, the publish task for common may run without configuring sibling projects like :keyvault, :labapi, :common, etc. The published POM then contained 'keyvault:unspecified', which caused downstream consumers (AADAuthenticator distDebugUnitTest) to fail at dependency resolution. Fix: for project dependencies, write the current artifact's version (getAppVersionName()) since all sibling library projects share the same version. External dependencies still use it.version as before. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent 3371b7e commit d313d38

2 files changed

Lines changed: 16 additions & 2 deletions

File tree

testutils/build.gradle

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,14 @@ project.afterEvaluate{
119119
def dependencyNode = dependenciesNode.appendNode('dependency')
120120
dependencyNode.appendNode('groupId', it.group)
121121
dependencyNode.appendNode('artifactId', it.name)
122-
dependencyNode.appendNode('version', it.version)
122+
// For project dependencies (e.g. project(':keyvault')), it.version
123+
// reads the sibling project's `version` field — which is
124+
// "unspecified" if that project hasn't been configured yet.
125+
// With Gradle configure-on-demand enabled, that's common.
126+
// All sibling library projects share the same version, so write
127+
// the current artifact's version for project deps.
128+
def depVersion = (it instanceof org.gradle.api.artifacts.ProjectDependency) ? getAppVersionName() : it.version
129+
dependencyNode.appendNode('version', depVersion)
123130
}
124131
}
125132
}

uiautomationutilities/build.gradle

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,14 @@ project.afterEvaluate{
165165
def dependencyNode = dependenciesNode.appendNode('dependency')
166166
dependencyNode.appendNode('groupId', it.group)
167167
dependencyNode.appendNode('artifactId', it.name)
168-
dependencyNode.appendNode('version', it.version)
168+
// For project dependencies (e.g. project(':keyvault')), it.version
169+
// reads the sibling project's `version` field — which is
170+
// "unspecified" if that project hasn't been configured yet.
171+
// With Gradle configure-on-demand enabled, that's common.
172+
// All sibling library projects share the same version, so write
173+
// the current artifact's version for project deps.
174+
def depVersion = (it instanceof org.gradle.api.artifacts.ProjectDependency) ? getAppVersionName() : it.version
175+
dependencyNode.appendNode('version', depVersion)
169176
}
170177
}
171178
}

0 commit comments

Comments
 (0)