java - 使用 spring-boot gradle-plugin 构建的可执行 jar 缺少依赖项

标签 java spring gradle spring-boot

我有一个使用 Spring Boot 的 Gradle 插件构建的可执行 JAR。它在构建文件中具有以下依赖项:

build.gradle

compile('org.apache.activemq:activemq-client:5.9.0')
compile('org.apache.activemq:activemq-broker:5.9.0')
compile('org.apache.activemq:activemq-kahadb-store:5.9.0')
compile('org.apache.activemq.protobuf:activemq-protobuf:1.1')

问题是在我跑完之后 ./gradlew clean build 创建的工件不包含 activemq-protobuf jar,仅包含其他 activemq jar:

[] jar -tf build/libs/application-0.1.0.jar | grep activemq
lib/activemq-client-5.9.0.jar
lib/activemq-broker-5.9.0.jar
lib/activemq-kahadb-store-5.9.0.jar
lib/activemq-openwire-legacy-5.9.0.jar

所以当我尝试运行 jar 时,我得到一个异常,即无法找到来自该依赖项的类:

java.lang.ClassNotFoundException: org.apache.activemq.protobuf.Message

在构建过程中,依赖项被下载并且可以在我的 gradle 缓存中找到,似乎出于某种原因,Spring Boot 的 Gradle 插件在 bootRepackage 任务期间没有包含它。

Eclipse 中也有此依赖项,可以从那里运行项目。

关于它丢失的原因有什么想法吗?

最佳答案

这看起来像是 Spring Boot 中的一个错误。我打开了一个issue以便我们进行调查。感谢您提请我们注意。

关于java - 使用 spring-boot gradle-plugin 构建的可执行 jar 缺少依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22385136/

相关文章:

maven - Jenkins Maven 存储库中的备份文件夹

java - mvn+jetty : Failed to execute goal org. eclipse.jetty:jetty-maven-plugin 出错:

java - 如何使用 Freemarker 变量解析 String HTML

java - 使用c3p0池连接数据库mysql

java - Spring Security 角色层次结构@Secured JavaConfig

java - Spring Data Mongodb 排序内部数组

android - 一个接一个地执行任务。 doFirst,doLast Groovy/Gradle

gradle - 如何从gradle的jar文件中排除 transient 依赖关系?

java - Android - 在 ImageView 中使用大图像或使用不同大小的图像

java - 如何实现 Java 枚举抽象类和接口(interface)?