Как я могу создать файл INDEX.LIST в банке, созданной Gradle? - PullRequest
0 голосов
/ 25 февраля 2020

Я перемещаю существующую сборку 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)
            }
        }
    }
}

И это, кажется, работает нормально.

Мне не хватает лучшего (встроенного) способ сделать это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...