Hi everyone,
I have stripped down a build to the the core of what causes the issue. Here’s the problem:
I have the following gradle build file:
apply plugin: 'base'
apply plugin: 'maven'
group = 'com.acme'
configurations {
api { transitive = false }
archives {
extendsFrom api
transitive = true
}
}
repositories {
mavenCentral()
}
task createFile() {
ext.destFile = file("${project.buildDir}/output.txt")
outputs.file(destFile)
doFirst {
mkdir(project.buildDir)
file(destFile).text = 'Some output file...'
}
}
task artifactZip(type: Zip, dependsOn: createFile) {
from(createFile)
}
artifacts {
archives artifactZip
}
dependencies {
api 'commons-lang:commons-lang:2.6'
}
conf2ScopeMappings.addMapping(1, configurations.archives, 'compile')
uploadArchives {
repositories {
mavenDeployer {
repository(url: new File(project.buildDir, 'repo').toURI().toURL())
}
}
}
task showMe << {
configurations.archives.each {
println(">>> configurations.archives contains $it")
}
}
This is not a java project but deals with dependencies. I have one set of dependencies but want two configurations: the first (‘api’) should be non-transitive while the second (‘archives’) should be. Since I don’t want to specify the dependencies twice, I just let ‘archives’ extend from ‘api’.
Now, if you execute “gradle showMe”, you’ll see that it looks like it works:
D:\tmp\gradlebug-test>gradle showMe > :showMe > >>> configurations.archives contains C:\Users\mike.gradle\caches\artifacts-8\filestore\commons-lang\commons-lang.6\jar\ce1edb914c94ebc388f086c6827e8bdeec71ac2\commons-lang-2.6.jar
However, if you deploy using uploadArchives, the resulting pom doesn’t include the commons-lang dependency:
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>com.acme</groupId>
<artifactId>gradlebug-test</artifactId>
<version>unspecified</version>
<packaging>zip</packaging>
</project>
Is this a gradle bug, or am I doing something completely wrong?
Best regards, Mike