Gradle - extrair o arquivo do frasco dependente
Eu quero extrair o arquivo "default.jasperreports.properties" de dependido jasperreports.jar e colocá-lo na distribuição zip com o novo nome "jasperreports.properties"
Exemplo de construção gradle:
apply plugin: 'java'
task zip(type: Zip) {
from 'src/dist'
// from configurations.runtime
from extractFileFromJar("default.jasperreports.properties");
rename 'default.jasperreports.properties', 'jasperreports.properties'
}
def extractFileFromJar(String fileName) {
// configurations.runtime.files.each { file -> println file} //it's not work
// not finished part of build file
FileTree tree = zipTree('someFile.zip')
FileTree filtered = tree.matching {
include fileName
}
}
repositories {
mavenCentral()
}
dependencies {
runtime 'jasperreports:jasperreports:2.0.5'
}
Como obter FileTree em extractFileFromJar () de dependência jasperreports-2.0.5.jar?
No script acima eu uso
FileTree tree = zipTree('someFile.zip')
mas quero usar algo parecido (errado, mas legível por humanos)
FileTree tree = configurations.runtime.filter("jasperreports").singleFile.zipTree
PS: Tente ligar
def extractFileFromJar(String fileName) {
configurations.runtime.files.each { file -> println file} //it's not work
...
mas não funciona com exceção
Você não pode alterar uma configuração que não esteja em estado não resolvido!