To generate a pom.xml file just run gradle writeNewPom
If you want to generate it as pom.xml in the root of the project, replace writeTo("$buildDir/newpom.xml")
with writeTo("pom.xml")
apply plugin: 'maven' | |
apply plugin: 'java' | |
sourceCompatibility = 7 | |
targetCompatibility = 7 | |
dependencies { | |
compile 'com.google.guava:guava:13.0.1' | |
compile 'joda-time:joda-time:2.1' | |
testCompile 'junit:junit:4.11' | |
testCompile 'org.mockito:mockito-core:1.9.5' | |
} | |
task writeNewPom << { | |
pom { | |
project { | |
groupId 'org.example' | |
artifactId 'test' | |
version '1.0.0' | |
inceptionYear '2008' | |
licenses { | |
license { | |
name 'The Apache Software License, Version 2.0' | |
url 'http://www.apache.org/licenses/LICENSE-2.0.txt' | |
distribution 'repo' | |
} | |
} | |
} | |
}.writeTo("$buildDir/newpom.xml") | |
} |
How can I make the newpom.xml is uploaded to repository as pom.xml? and how to sign them?
it worked. Thanks
The result file, newpom.xml in your case, does not contain any information about java build version for maven. Can you please add correspond details (how to use pom generator specify java version in the target pom.xml file)?
Thanks.
How can I generate the 'build.gradle.kts' version of this guys? I am struggling with converting the groovy gradle function to Kotlin script.
Perhaps it would be better if instead of hard coding group & version, use Groovy DSL :
groupId project.group.toString()
version version
@amirhadad I also ended up here trying to figure out how to do the same thing in Kotlin, and finally a colleague came up with the following code, which works fine for our project:
task("createPom") {
group = "maven"
description = "generates a maven pom.xml file based on the build.gradle.kts file"
doLast {
project.the<MavenPluginConvention>().pom() {
project {
groupId = "my.group"
artifactId = "my-app"
version = "latest"
withGroovyBuilder {
"inceptionYear"("2042")
}
}
}.writeTo("pom.xml")
}
}
I've done quite the same
task generatePom {
doLast {
pom {
project {
groupId project.group.toString()
artifactId 'awesome-app'
version version
inceptionYear '2018'
licenses {
license {
name 'MIT License'
url 'MIT'
distribution 'repo'
}
}
}
}.writeTo("$buildDir/pom.xml")
}
}
I have added the code in bulid.gradle file
task("createPom") {
group = "maven"
description = "generates a maven pom.xml file based on the build.gradle.kts file"
doLast {
project.the().pom() {
project {
groupId = "my.group"
artifactId = "my-app"
version = "latest"
withGroovyBuilder {
"inceptionYear"("2042")
}
}
}.writeTo("pom.xml")
}
}
but Its not working,Please guide me guys.
Anyone have a gradle 6 equivalent?
yep it worked. Thanks