Gradle тянуть зависимости от манифеста включенного фляги - PullRequest
0 голосов
/ 19 марта 2019

У меня установлен weblogic 10.3.6 на локальном компьютере.Я обычно добавляю wlserver_10.3\server\lib\weblogic.jar в classpath моего проекта eclipse, и он переносит все другие jar weblogic среды выполнения в classpath из файла MANIFEST.MF файла weblogic.jar.

См. Изображение, показывающее содержимое файла MANIFEST.MF.content of MANIFEST.MF

Проблема, с которой я столкнулся, связана с проектом gradle, когда я добавляю weblogic jar в качестве зависимости плоского каталога.

weblogic.jar gradle dependency

Он перетаскивает только weblogic.jar в путь к классам, но не учитывает его MANIFEST.MF и не доставляет все остальные файлы jar.

Существует ли в gradle какой-либо стандартный способ извлечения зависимостей из MANIFEST.MF извключенная банка?

1 Ответ

0 голосов
/ 01 апреля 2019

Стандартного подхода к этому нет, но можно обойти это решение.Вы можете определить метод, который читает путь к классу файла манифеста weblogic.jar и возвращает список файлов, которые затем могут быть использованы в зависимости.

// Method to return files mentioned in manifest file
import java.util.jar.Attributes;
def getWeblogicDependencyFiles() {

    def fileList = []
    def weblogicJarDir = '/path/to/webLogic/folder/10.3.6/wlserver_10.3/server/lib'
    def classPathJars = new java.util.jar.JarFile(weblogicJarDir+'/weblogic.jar').manifest.mainAttributes.get(Attributes.Name.CLASS_PATH).split(' ')
    for(String jarName : classPathJars) {
        if("".equals(jarName.trim())) {
            continue;
        }
        fileList.add(file(weblogicJarDir+'/'+jarName))
    }

    return fileList
}

затем назначьте выходные данные этого метода переменной

// Make te output available to project
project.ext.weblogicDependencyFiles = getWeblogicDependencyFiles();

Теперь вы можете использовать эти файлы в качестве зависимости в вашем проекте

// Dependency
dependencies {
    compile files(weblogicDependencyFiles)
}

Опять же, это просто обходной путь.Лучшим подходом было бы определение зависимостей из центрального хранилища.

...