Я перемещаю существующую сборку Ant в Gradle и пытаюсь убедиться, что артефакты, создаваемые новой сборкой, идентичны старым.
Один существующий подпроект создает банку с * Файл 1003 * согласно: https://docs.oracle.com/javase/8/docs/technotes/guides/jar/jar.html#JAR_Index
Я бы хотел, чтобы задача Gradle Jar включила этот файл в свой вывод, но, похоже, не могу найти встроенную способ сделать это. Что я сделал до сих пор, чтобы включить это в моем root проекте:
allprojects { project ->
/**
* If we want to generate jars with META-INF/INDEX.LIST existing and populated, Gradle's jar task
* will NOT do this by default. So, at the END of running
* a jar task, we can then call Ant's jar task, which allows for UPDATING an existing jar using
* the index = true attribute argument, which will create that file with appropriate contents.
*
* This bit of code here will write a self-configuring method to every Jar task in the project which can do this.
*
* To make a Jar task use this option, do:
*
* <code>
* jar {
* withIndex()
* }
* </code>
*/
tasks.withType(Jar) { task ->
task.ext.withIndex = {
doLast {
ant.jar(update: true, index: true, destfile: task.getArchiveFile().get().asFile.path)
}
}
}
}
И это, кажется, работает нормально.
Мне не хватает лучшего (встроенного) способ сделать это?