Created
December 17, 2013 18:27
-
-
Save lifuzu/8010112 to your computer and use it in GitHub Desktop.
To upload multiple existing jars to maven repository with gradle
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// To upload a jar via gradle you must declare that jar as a publish artifact and add it to a specific configuration using the artifacts closure: | |
apply plugin:'maven' | |
configurations{ | |
allJars | |
} | |
artifacts{ | |
allJars file("path/to/jarFile.jar") | |
} | |
// To configure the dynamically created uploadAllJars task: | |
uploadAllJars { | |
repositories { | |
mavenDeployer { | |
repository(url: 'http://localhost:8081/artifactory/acme') { | |
authentication(userName: 'admin', password: 'password'); | |
} | |
} | |
} | |
} | |
// To lookup the multiple jars. | |
group = "org.acme" | |
version = "1.0-SNAPSHOT" | |
task discoverAllJars{ | |
ext.discoveredFiles = [] | |
doLast{ | |
file("jars").eachFile{file -> | |
if(file.name.endsWith("jar")){ | |
println "found file ${file.name}" | |
discoveredFiles << file | |
artifacts{ | |
allJars file | |
} | |
} | |
} | |
} | |
} | |
task configureUploadAllJars{ | |
dependsOn discoverAllJars | |
doLast{ | |
uploadAllJars { | |
repositories { | |
mavenDeployer { | |
repository(url: 'http://yourrepository/') { | |
authentication(userName: 'admin', password: 'password'); | |
} | |
discoverAllJars.discoveredFiles.each{discoveredFile -> | |
def filterName = discoveredFile.name - ".jar" | |
addFilter(filterName) { artifact, file -> | |
file.name == discoveredFile.name | |
} | |
pom(filterName).artifactId = filterName | |
} | |
} | |
} | |
} | |
} | |
} | |
// To add a dependency between uploadAllJars and configureUploadAllJars: | |
uploadAllJars.dependsOn configureUploadAllJars |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment