具有jar依赖项的Spring Boot应用程序在Maven构建后无法运行

时间:2019-08-17 09:00:49

标签: java maven spring-boot

我正在编写一个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] -------------------------------- [jar   ] --------------------------------- [警告]的POM   com.ibm:notes:jar:1.0.0丢失,没有依赖项信息   可用

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

  

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

     

org.springframework.beans.factory.UnsatisfiedDependencyException:   创建名称为“ craNotesService”的bean时出错:不满意   通过字段“存储库”表达的依赖性;嵌套异常为   org.springframework.beans.factory.BeanCreationException:错误   创建名称为“ craNotesRepository”的bean:查找方法解析   失败嵌套异常是java.lang.IllegalStateException:失败   内省级   [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的类。

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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