使用spring-boot gradle插件构建的可执行jar文件缺少依赖项。

5
我有一个可执行的JAR文件,是使用Spring Boot的Gradle插件构建的。在构建文件中,它具有以下依赖项:
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 jars。
[] 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中,可以从那里运行该项目。
有关其消失的任何想法吗?
2个回答

1
这似乎是Spring Boot的一个错误。我已经开了一个问题,以便我们可以进行调查。感谢您的关注。

0
以下是一个快速解决方案,待错误修复后。 尝试在您的gradle.build文件中添加以下内容
jar {
baseName = 'gs-accessing-data-rest'
version = '0.1.0'
into('lib') {
    from 'oraDrv'
   }

}

oraDrv是一个文件夹,其中包含您的自定义JAR文件或缺失的JAR文件。假定oraDrv相对于build.gradle文件位置。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接