首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可执行的jar内置了spring-boot gradle-plugin缺少的依赖项

可执行的jar内置了spring-boot gradle-plugin缺少的依赖项
EN

Stack Overflow用户
提问于 2014-03-13 16:36:24
回答 2查看 2.6K关注 0票数 5

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

build.gradle

代码语言:javascript
复制
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:

代码语言:javascript
复制
[] 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时,我得到了一个异常,即无法找到来自此依赖项的类:

代码语言:javascript
复制
java.lang.ClassNotFoundException: org.apache.activemq.protobuf.Message

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

Eclipse中也存在这种依赖关系,并且可以从那里运行项目。

知道为什么它不见了吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-13 17:16:03

这看起来像是Spring中的一个bug。我开了一个问题这样我们就可以调查了。谢谢你提请我们注意。

票数 1
EN

Stack Overflow用户

发布于 2014-03-20 02:34:38

下面是一个快速修复,而错误是解决的。在您的gradle.build文件中尝试以下操作

代码语言:javascript
复制
jar {
baseName = 'gs-accessing-data-rest'
version = '0.1.0'
into('lib') {
    from 'oraDrv'
   }

}

其中oraDrv是一个文件夹,其中有您的自定义jars或丢失的jars。假定oraDrv相对于build.gradle文件位置。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22385136

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档