В настоящее время я работаю над переносом скрипта Ant в соответствующую версию Gradle. Все работает отлично, за исключением специальной задачи копирования, которая отвечает за копирование сгенерированного файла jar из build/libs в другой каталог (вне проекта).Custom Gradle «Копировать» задание копирует устаревшие классы
Если после первой сборки, я представлю изменения в любой файл Java и попытаться выполнить
gradle clean build deploy
я вижу сборки/классы * .class файлы корректно обновляются, и сборки/ЛИЭС /template-util.jar. Тем не менее, файл template-util.jar, скопированный в/home/fbudassi/Downloads, имеет (большую часть времени) старую версию класса. Иногда, после некоторых изменений (я не знаю, где, потому что я пробовал много всего), скопированная банка обновляется правильно.
Это мой build.gradle:
apply plugin: 'java'
apply plugin: 'eclipse'
// Default task.
defaultTasks 'deploy'
// Configuration parameters.
group = 'com.rcs.template'
version = 'master'
sourceCompatibility = 1.7
targetCompatibility = 1.7
ext {
// Manifest extra parameters.
projectName = 'Template Util'
vendor = 'Rotterdam Community Solutions'
buildNumber = 10
jarName = 'template-util.jar'
// Dependencies versions.
jacksonVersion = '2.6.0'
// Deploy destinations.
deployTo = ['/home/fbudassi/Downloads']
}
// Dependencies.
dependencies {
compile "com.fasterxml.jackson.core:jackson-core:$jacksonVersion"
compile "com.fasterxml.jackson.core:jackson-annotations:$jacksonVersion"
compile "com.fasterxml.jackson.core:jackson-databind:$jacksonVersion"
compile "org.slf4j:slf4j-api:1.7.12"
compile "org.apache.commons:commons-lang3:3.4"
testCompile 'junit:junit:4.12'
}
repositories {
mavenCentral()
}
// Jar name and Manifest data.
jar {
def buildDate = new Date().format("MMMMM dd yyyy")
archiveName = jarName
manifest {
attributes 'Built-By': System.getProperty('user.name'),
'Built-Date': buildDate,
'Built-JDK': System.getProperty('java.version'),
'Implementation-Title': projectName,
'Implementation-Version': "$project.version - $buildDate - build: $buildNumber",
'Implementation-Vendor': vendor
}
}
// Deploy task: copy jar to destinations.
task deploy(dependsOn: 'build') {
deployTo.each { dest ->
copy {
from jar
into dest
}
}
}
// Gradle Wrapper version.
task wrapper(type: Wrapper) {
gradleVersion = '2.5'
}
Не могли бы вы помочь мне найти ответ на эту проблему?
Когда вы рекомендуете использовать несколько задач типа copy, вы имеете в виду, что я должен создать (в данном конкретном случае) две разные задачи «Копировать» для двух точек назначения в моем массиве 'deployTo'? Я имею в виду, что-то вроде того, что предложил Опан? –