【问题标题】:Spring Boot application with a jar dependency does not run after maven build具有 jar 依赖项的 Spring Boot 应用程序在 maven 构建后不运行
【发布时间】:2019-12-23 09:06:50
【问题描述】:

我正在编写一个 Spring Boot 应用程序,它需要从 ibm notes 数据库中获取记录。为此,我必须使用不能作为 maven 依赖项使用的 jar 库。因此,我将 jar 作为 lib/com/ibm/notes/1.0.0/notes-1.0.0.jar 放在项目主页中,并将其作为本地存储库添加到 pom 文件中,如下所示。

<repositories>
    <repository>
        <id>ProjectRepo</id>
        <url>file://${project.basedir}/lib</url>
    </repository>
</repositories>

<dependency>
    <groupId>com.ibm</groupId>
    <artifactId>notes</artifactId>
    <version>1.0.0</version>
</dependency>

我的应用程序在 Eclipse IDE 中运行时没有任何问题。但是,当我通过右键单击 Eclipse 中的 pom 文件来清理/安装同一个项目时,构建成功并出现以下警告。

[INFO] --------------------------------[ 罐子 ]--------------------------------- [警告] POM com.ibm:notes:jar:1.0.0 缺失,没有依赖信息 可用

但应用程序在命令行执行失败。以下是我得到的错误。

启动 ApplicationContext 时出错。显示条件报告 在启用“调试”的情况下重新运行您的应用程序。 2019-08-17 16:37:41.450 错误 17868 --- [主] os.boot.SpringApplication
: 应用程序运行失败

org.springframework.beans.factory.UnsatisfiedDependencyException: 创建名为“craNotesService”的 bean 时出错:不满意 通过字段“存储库”表达的依赖关系;嵌套异常是 org.springframework.beans.factory.BeanCreationException:错误 创建名为“craNotesRepository”的bean:查找方法解析 失败的;嵌套异常是 java.lang.IllegalStateException: Failed to 内省类 [q2c.project7.craservice.repository.CraNotesRepository] ​​来自 类加载器 [org.springframework.boot.loader.LaunchedURLClassLoader@5c7fa833] 在 org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:596) ~[spring-beans-5.1.9.RELEASE.jar!/:5.1.9.RELEASE]

您能告诉我如何解决这个问题吗?

CraNotesRepository 是使用上面指定的外部 jar 的类。

【问题讨论】:

    标签: java maven spring-boot


    【解决方案1】:

    尝试像这样从 cmd 手动安装notes-1.0.0.jar

    mvn install:install-file -Dfile=<path-to-file> -DgroupId=<group-id> \
        -DartifactId=<artifact-id> -Dversion=<version> -Dpackaging=<packaging>
    

    【讨论】:

      【解决方案2】:

      我在 Eclipse 项目中使用 32 位 jdk 进行开发,而我的机器有 64 位 jdk。 Notes jar 仅支持 32 位。因此在 64 位 jdk 中运行它无法从 Notes jar 文件中加载类。将机器 jdk 也更改为 32 位解决了这个问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-12-12
        • 2014-09-02
        • 2012-11-16
        • 2017-01-26
        • 2016-02-08
        • 2018-01-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多