#java #spring #spring-boot #maven #spring-security
#java #spring #spring-boot #maven #spring-security
Вопрос:
Я создаю новый многомодульный проект maven и хочу повторно использовать некоторые модули из моего старого проекта, в основном я хочу повторно использовать модуль безопасности ,
я использую nexus для получения артефактов из репозитория, некоторые модули, которые не требуют зависимостей, работают нормально.
я не могу запустить новый проект, потому что он сообщает мне, что некоторые зависимости отсутствуют
Зависимости модуля, который я хочу использовать :
<parent>
<artifactId>back</artifactId>
<groupId>org.goldminds</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>oauth-security</artifactId>
<version>1.0-SNAPSHOT</version>
<name>oauth-security</name>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<modelVersion>4.0.0</modelVersion>
Зависимости нового проекта maven :
<artifactId>admin</artifactId>
<version>1.0-SNAPSHOT</version>
<name>admin</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>org.goldminds</groupId>
<artifactId>core</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.goldminds</groupId>
<artifactId>oauth-security</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
</dependencies>
Новый основной класс проекта:
@SpringBootApplication
@ComponentScan(basePackages = {
"goldminds.controllers",
"goldminds.oauthsecurity" // the module i want to reuse
})
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}
Ошибка, которую я получаю :
org.springframework.beans.factory.BeanDefinitionStoreException: Failed to parse configuration class [admin.App]; nested exception is java.io.FileNotFoundException: class path resource [org/springframework/security/config/annotation/web/configuration/WebSecurityConfigurerAdapter.class] cannot be opened because it does not exist
at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:189) ~[spring-context-5.2.9.RELEASE.jar:5.2.9.RELEASE]
at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:319) ~[spring-context-5.2.9.RELEASE.jar:5.2.9.RELEASE]
at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:236) ~[spring-context-5.2.9.RELEASE.jar:5.2.9.RELEASE]
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:280) ~[spring-context-5.2.9.RELEASE.jar:5.2.9.RELEASE]
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:96) ~[spring-context-5.2.9.RELEASE.jar:5.2.9.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:707) ~[spring-context-5.2.9.RELEASE.jar:5.2.9.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:533) ~[spring-context-5.2.9.RELEASE.jar:5.2.9.RELEASE]
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:143) ~[spring-boot-2.3.4.RELEASE.jar:2.3.4.RELEASE]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:758) ~[spring-boot-2.3.4.RELEASE.jar:2.3.4.RELEASE]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:750) ~[spring-boot-2.3.4.RELEASE.jar:2.3.4.RELEASE]
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397) ~[spring-boot-2.3.4.RELEASE.jar:2.3.4.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) ~[spring-boot-2.3.4.RELEASE.jar:2.3.4.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1237) ~[spring-boot-2.3.4.RELEASE.jar:2.3.4.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1226) ~[spring-boot-2.3.4.RELEASE.jar:2.3.4.RELEASE]
at admin.App.main(App.java:14) ~[classes/:na]
Комментарии:
1. Используют ли старые и новые проекты одну и ту же версию Spring Boot?
2. Да, они делают: 2.3.4.RELEASE
3. судя по всему мне должны были дать два проекта, Один и тот же родитель ` <parent> <groupId>орг.springframework.загрузки</groupId> <artifactId>весна-загрузки-стартер-родитель</artifactId> <version>2.3.4.Релиз</version> <relativePath /> <!— lookup parent from repository —> </parent> `