Gadle - Включить файлы JAR в файл JAR - PullRequest
0 голосов
/ 03 ноября 2019

Теперь это может быть немного странно, но выслушайте меня.
Мне нужно включить некоторые файлы jar (как они есть, не распаковывая их) в файл jar, который я генерирую с помощью gradle.

Мне это нужно, чтобы я мог распаковать их при необходимости позже. (Почему именно мне нужна другая история, которая здесь не актуальна.)

Теперь у меня так:

configurations {
    slf4j
}

dependencies {
    slf4j "org.slf4j:slf4j-api:${slf4j_version}"
    slf4j "org.slf4j:slf4j-jdk14:${slf4j_version}"
}

jar {
    from(project.configurations.slf4j.files) {
        into ("slf4j_jars")
    }
}

Это работает почти, но с этим gradle распаковывает файлы jarпоэтому файлы классов сами заканчиваются в моем банке, а не в банках SLF4J, как мне хотелось бы.
И файлы банок должны заканчиваться в папке slf4j_jars внутри моего баночка.

Обновление:

configurations {
    slf4j
}

dependencies {
    slf4j "org.slf4j:slf4j-api:${slf4j_version}"
    slf4j "org.slf4j:slf4j-jdk14:${slf4j_version}"
}

processResources {
    from(project.configurations.slf4j.files) {
        into ("slf4j_jars")
    }
}

Так же, как и размещение файлов непосредственно в папке src/main/resources/slf4j_jars.

По какой-то причине Gradle всегда распаковывает файлы jar.

ТакжеЯ использую Gradle 4.10.3 и, к сожалению, не могу перейти на любую версию 5.xx.

Обновление 2:

Мне удалось, по крайней мере, получить сами файлы с этим:

configurations {
    slf4j
}

dependencies {
    slf4j "org.slf4j:slf4j-api:${slf4j_version}"
    slf4j "org.slf4j:slf4j-jdk14:${slf4j_version}"
}

processResources {
    from(project.configurations.slf4j.files) {
        into "slf4j_jars"
        rename '(.*).jar', '$1.zip'
    }
}

Теперь они были переименованы в .zip файлы, которые я могу обойти.

...