Плагин SpringBoot Gradle не перепаковывает подмодуль Maven (обходной путь внутри) - PullRequest
0 голосов
/ 26 сентября 2018

Мой проект SpringBoot зависит от большого проекта Maven:

aSpringBootProject / build.gradle:

...
dependencies {
    ...
    implementation 'my.big:maven.dependency'
    ...
}

Этот большой проект Maven зависит от подмодуля, который простовключают зависимости:

bigMavenDependency / pom.xml

...
<dependencies>
    ...
    <dependency>
        <group>my.big</group>
        <artefact>sub.module</artefact>
    </dependency>
    ...
</dependencies>

bigSubModule / pom.xml

...
<package>pom</package>
...
<dependencies>
    <!-- a lot of dependencies here -->
</dependencies>

КогдаЯ собираю свой bootJar и запускаю его (java -jar aSpringBootProject.jar) У меня есть эта ошибка:

Exception in thread "main" java.lang.IllegalStateException: Failed to get nested archive for entry BOOT-INF/lib/sub-module-1.0-SNAPSHOT.pom
    at org.springframework.boot.loader.archive.JarFileArchive.getNestedArchive(JarFileArchive.java:108)
...
Caused by: java.io.IOException: Unable to open nested jar file 'BOOT-INF/lib/sub-module-1.0-SNAPSHOT.pom'
    at org.springframework.boot.loader.jar.JarFile.getNestedJarFile(JarFile.java:254)
...   
Caused by: java.io.IOException: Unable to find ZIP central directory records after reading 2628 bytes
    at org.springframework.boot.loader.jar.CentralDirectoryEndRecord.<init>(CentralDirectoryEndRecord.java:65)

Распаковка моего bootJar дает мне pom-файл, в котором ожидается большое количество jar-файлов.

Команда gradle bootRun работает как шарм.

Обходной путь - исключить подмодуль и добавить его в качестве зависимости в мой build.gradle:

...
dependencies {
    ...
    implementation 'my.big:maven.dependency' {
        exclude 'my.big:sub.module'
    }
    implementation 'my.big:sub.module'
    ...
}

Где я ошибаюсь?

1 Ответ

0 голосов
/ 12 марта 2019

Вы можете попробовать:

...
<dependencies>
    ...
    <dependency>
        <group>my.big</group>
        <artefact>sub.module</artefact>
        (here try <packaging>jar</packaging> or <type>jar</type>)
    </dependency>
    ...
</dependencies>

У меня была такая же проблема в gradle, когда я использовал compile group: 'com.fasterxml.jackson', name: 'jackson-bom', version: '2.9.8', ext: 'pom' с загрузочным флягой Spring.Когда я удалил , ext: 'pom' проблема была решена.

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