Я занимаюсь разработкой двух проектов, один (основной проект) зависит от другого (вспомогательный проект).В Eclipse я обычно ссылаюсь на вспомогательный проект через путь сборки.Таким образом, я могу нормально развиваться и нормально работать, когда я работаю в IDE.* проекты не были рабочим пространством eclipse.
основной путь сборки
Хотя это моя цель - развернуть файлы jar и запустить их через maven в рабочей средесреда.Но при тестировании в среде разработки при выполнении команды в основном проекте:
mvn spring-boot:run
появляется следующая ошибка:
Исключение:
Exception in thread "Thread-1" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'clientDetailsServiceImpl': Resolution of declared constructors on bean Class [com.packt.example.implicitserver.service.ClientDetailsServiceImpl] from ClassLoader [sun.misc.Launcher$AppClassLoader@139a55] failed; nested exception is java.lang.NoClassDefFoundError: br/edu/flowiotoauth2/ufpe/flowiotauth2/repository/Devices
Причина:
Caused by: java.lang.NoClassDefFoundError: br/edu/flowiotoauth2/ufpe/flowiotauth2/repository/Devices
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671)
at java.lang.Class.getDeclaredConstructors(Class.java:2020)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.determineCandidateConstructors(AutowiredAnnotationBeanPostProcessor.java:284)
... 18 more
Caused by: java.lang.ClassNotFoundException: br.edu.flowiotoauth2.ufpe.flowiotauth2.repository.Devices
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
pom.xml основного проекта:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.packt.example</groupId>
<artifactId>implicit-server</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>implicit-server</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.4.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.46</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.security.oauth</groupId>
<artifactId>spring-security-oauth2</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-test</artifactId>
<scope>test</scope>
</dependency>
<!-- <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId>
<version>2.11.1</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId> <version>2.11.1</version> </dependency> -->
<!-- <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId>
<version>1.7.25</version> </dependency> <dependency> <groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId> <version>1.7.5</version> </dependency>
<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId>
<version>1.7.25</version> </dependency> -->
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20180813</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-io</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<!-- <version>1.5.6</version> -->
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<!-- <version>1.7.21</version> -->
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<!-- <version>1.7.25</version> -->
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
Я уже советовался с несколькими темами сообщества и сделал несколько изданий в pom.xml основного проекта, но я все еще продолжаюсохранить ту же проблему
<dependency>
<groupId>br.edu.flowiotoauth2.ufpe.flowiotauth2</groupId>
<artifactId>FlowIoTOAuth2</artifactId>
<version>0.0.1-SNAPSHOT</version>
<scope>system</scope>
<systemPath>PATH...\FlowIoTOAuth2-0.0.1-SNAPSHOT.jar</systemPath>
</dependency>
Я проверил, что вспомогательный проект в локальном хранилище .m2, и он был там:
C:\Users\admin\.m2\repository\br\edu\flowiotoauth2\ufpe\flowiotauth2\FlowIoTOAuth2\0.0.1-SNAPSHOT
Anys Я пытался вставить вручную файл JAR вспомогательного проекта вручнуюснова в локальном хранилище .m2, основанном на этом шаблоне, но результат тот же:
mvn install:install-file -Dfile=c:\kaptcha-{version}.jar -DgroupId=com.google.code
-DartifactId=kaptcha -Dversion={version} -Dpackaging=jar
ПОСЛЕ того, как я проверил главный файл проекта, я увидел, что файл jar вспомогательного проекта не был в папке libфайла jar основного проекта.
Manifest-Version: 1.0
Implementation-Title: implicit-server
Implementation-Version: 0.0.1-SNAPSHOT
Archiver-Version: Plexus Archiver
Built-By: admin
Implementation-Vendor-Id: com.packt.example
Spring-Boot-Version: 1.5.4.RELEASE
Implementation-Vendor: Pivotal Software, Inc.
Main-Class: org.springframework.boot.loader.JarLauncher
Start-Class: com.packt.example.implicitserver.ImplicitServerApplication
Class-Path: BOOT-INF/lib/FlowIoTOAuth2-0.0.1-SNAPSHOT.jar
Spring-Boot-Classes: BOOT-INF/classes/
Spring-Boot-Lib: BOOT-INF/lib/
Created-By: Apache Maven 3.6.0
Build-Jdk: 1.8.0_151
Implementation-URL: http://projects.spring.io/spring-boot/implicit-ser
ver/
Внутри файла jar основного проекта
Как сделать так, чтобы файл jar вспомогательного проекта содержался в папке lib основного проекта