私はグラデルビルドからビルドアーチファクトをパッケージ化しています。これはAndroid Studioプロジェクトです。パラメータを渡したファイル名をgradleに変更しました
2つのjarを含むzipファイルを正常に作成するタスクがあります。 zipファイルの名前が「my.zip
」であるとします。
私は次のGradleのタスクがあります。
task renameArtifacts (type: Copy) {
from ('build/')
include 'my.zip'
destinationDir file('build/')
doLast {
println "my-${versionString}.zip"
rename('build/my.zip', "build/my-${versionString}.zip")
}
}
そして私は、私はdoLast
閉鎖にprintln
を持っていると私の文字列補間はそれとして正常に動作している見ることができますgradle -PversionString="123" :sdk:renameArtifacts
でそれを呼んでいるがmy-123.zip
を出力します。
ただし、'my.zip'
の名前は'my-123.zip'
に変更されません。それは'my.zip'
のままであり、実際にはサイズが0バイトのファイルになり、もはやzipファイルとして開くことはできません。
私は明らかにどこかで間違っていますが、どこですか?
全Gradleのファイル:
apply plugin: 'com.android.library'
android {
compileSdkVersion 22
buildToolsVersion "23.0.3"
defaultConfig {
minSdkVersion 14
targetSdkVersion 14
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
compile 'com.android.support:support-v4:22.2.0'
compile files('libs/urbanairship-lib-3.1.0.jar')
compile files('libs/jackson-annotations-2.2.2.jar')
compile files('libs/jackson-core-2.2.2.jar')
compile files('libs/jackson-databind-2.2.2.jar')
}
task updateVersionNumber() << {
ant.replace(file: 'src/main/java/com/my/Version.java', token: '{{VERSION}}', value: versionString)
}
task javadoc(type: Javadoc) {
source = android.sourceSets.main.java.srcDirs
classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
destinationDir = file("build/javadoc")
failOnError false
}
task createJavaDocJar(type: Jar) {
from ('build/javadoc')
destinationDir file('build')
baseName = 'my_doc'
}
createJavaDocJar.dependsOn(javadoc)
task packageMyJarAndDependencies(type: Jar) {
from (zipTree('libs/jackson-annotations-2.2.2.jar')) {
exclude 'META-INF/maven/'
exclude 'META-INF/services/'
}
from (zipTree('libs/jackson-core-2.2.2.jar')) {
exclude 'META-INF/maven/'
exclude 'META-INF/services/'
}
from (zipTree('libs/jackson-databind-2.2.2.jar')) {
exclude 'META-INF/maven/'
exclude 'META-INF/services/'
}
from (zipTree('libs/urbanairship-lib-3.1.0.jar'))
from (zipTree('build/intermediates/bundles/release/classes.jar'))
}
task createFinalJar(type: Copy) {
from('build/libs/')
into('build')
include('sdk.jar')
rename('sdk.jar', 'my.jar')
}
createFinalJar.dependsOn(clean, build, packageMyJarAndDependencies)
packageMyJarAndDependencies.mustRunAfter build
build.mustRunAfter clean
task zipArtifacts(type: Zip) {
from ('build/')
from ('build/libs')
include 'my_doc.jar'
include 'my.jar'
baseName = 'my_lib'
destinationDir file('build')
}
zipArtifacts.dependsOn(createFinalJar, createJavaDocJar)
task renameArtifacts (type: Copy) {
from ('build/')
into('build')
include 'my_lib.zip'
doLast {
println "my_lib-${versionString}.zip"
rename "my_lib.zip", "my_lib-${versionString}.zip"
}
}
renameArtifacts.dependsOn(zipArtifacts)
これを試してみてください:あなたがあなたのビルドの一部として作成されたカスタムアーカイブは自動的に任意の構成に割り当てられていないことに注意することが重要である アーティファクト{ アーカイブMYJAR }:MYJAR(ジャータイプ)タスク。この割り当てを明示的に行う必要があります。 – PN10
私は分かりません。私はただファイルの名前を変更しようとしています – barry
あなたのbuild.gradleファイルを投稿してください – PN10