Создал модуль для работы с arangoDb
по примеру. Вот pom.xml:
Все хорошо работает, как надо.
Решил растащить этот пример на модули, т.е вынести все что не связано с аранго и spring data в отдельный модуль "core", а все что связано с БД оставить в рабочем компоненте "kernel" .
pom.xml kernel:
Таким образом, в отдельный модуль "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
Когда запускаю 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