Я пытаюсь заменить файл в моей папке ресурсов (src/main/resources) новым файлом, сгенерированным скриптом сборки Gradle. У меня возникли проблемы с этим; исключение, похоже, запоминается и предотвращает добавление моего нового файла.Заменить файл в Gradle Build
Вот краткий пример, иллюстрирующий поведение.
Структура проекта:
TestProject
-- src/main/java
---- entry
------ EntryPoint.java
---- run
------ HelloWorldTest.java
-- src/main/resources
---- test.properties // FILE TO REPLACE
test.properties содержание в SRC/основные/ресурсы:
Wrong File with extra text to make it obvious which one is being put into the jar based on size
build.gradle:
apply plugin: 'java'
task makeProp {
def propDir = new File(buildDir, "props")
ext.propFile = new File(propDir, "test.properties")
outputs.file propFile
doLast {
propDir.mkdirs()
propFile.createNewFile()
propFile.withWriter('utf-8') { writer ->
writer.writeLine 'Right File'
}
}
}
jar {
dependsOn('makeProp')
if (project.hasProperty('testExclude')) {
sourceSets {
exclude('test.properties')
}
}
from (makeProp.propFile) {
into '/'
}
}
JAR содержание ./gradlew build
(оба файла включены):
Archive: TestProject.jar
Length Date Time Name
-------- ---- ---- ----
0 08-07-15 14:27 META-INF/
25 08-07-15 14:27 META-INF/MANIFEST.MF
0 08-07-15 13:50 run/
499 08-07-15 13:50 run/HelloWorldTest.class
0 08-07-15 13:50 entry/
1413 08-07-15 13:50 entry/EntryPoint.class
95 08-07-15 14:27 test.properties
11 08-07-15 14:03 test.properties
-------- -------
2043 8 files
JAR содержание ./gradlew build -PtestExclude
(ни файл):
Archive: TestProject.jar
Length Date Time Name
-------- ---- ---- ----
0 08-07-15 14:29 META-INF/
25 08-07-15 14:29 META-INF/MANIFEST.MF
0 08-07-15 13:50 run/
499 08-07-15 13:50 run/HelloWorldTest.class
0 08-07-15 13:50 entry/
1413 08-07-15 13:50 entry/EntryPoint.class
-------- -------
1937 6 files
Я закончил тем, что делал что-то похожее на это. Я воспринял это как ответ, с моим собственным, чтобы следовать. Я надеялся, что будет более прямое решение, чем необходимость в основном работать над их механизмом исключения, но я уверен, что должна быть какая-то рациональная причина для механизма, работающего так, как он делает, что начинающий новичок, как я, не может думать из. – Ironcache