Задать вопрос
@Yasuro

Как избежать ClassNotFoundException в Spring + ArangoDb + Maven в проекте разделенном на модули?

Создал модуль для работы с arangoDb по примеру. Вот pom.xml:
5d644a31bb729482546772.png
Все хорошо работает, как надо.
Решил растащить этот пример на модули, т.е вынести все что не связано с аранго и spring data в отдельный модуль "core", а все что связано с БД оставить в рабочем компоненте "kernel" .
pom.xml kernel:
5d645361f24bd021299735.png

Таким образом, в отдельный модуль "Core" вышел только spring core:
@SpringBootApplication
public class Core {
    public static void main(String[] args) {
        final Class<?>[] runner = new Class<?>[] { KernelRunner.class};
        System.exit(SpringApplication.exit(SpringApplication.run(runner,args)));
    }
}

@ComponentScan("com.name.proj.kernel") //пакет com.name.proj.kernel - из рабочего модуля (в котором вся логика с аранго)
public class KernelRunner implements CommandLineRunner {
    @Override
    public void run(String... args) throws Exception {
        System.out.println("it is runner");
    }
}

pom.xml компоненты Core
5d644e0e3e627453874863.png
Когда запускаю Core получаю ошибку:
Caused by: java.lang.ClassNotFoundException: com.arangodb.springframework.repository.ArangoRepository
ArangoRepository - это интерфейс, который я наследую, чтобы spring сконфигурил DAO:
public interface MyObjectRepository extends ArangoRepository<MyObject, String>


Почему в такой реализации спринг не видит ArangoRepository?

ЧтоПробовал:""

изменить pom.xml в core:
<dependency>
            <groupId>org.springframework.boot</groupId>
           Это: <artifactId>spring-boot-starter</artifactId> заменить на это: <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

Тогда получаю:
Caused by: org.springframework.context.ApplicationContextException: Unable to start ServletWebServerApplicationContext due to missing ServletWebServerFactory bean.
StackOverflow говорит мл чтобы это пофиксить, надо добавить spring.main.web-application-type=none в application.properties. В таком случае, снова получаю ClassNotFoundException
  • Вопрос задан
  • 75 просмотров
Подписаться 1 Простой 2 комментария
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы