프로젝트 팀 작업을 하면서 spring boot 배포를 하는 친구들이 build 오류가 난다고 했다. 처음엔 git에서 파일을 pull 할 때 제대로 못한게 아닐까 싶었는데, 그런 오류는 아니었다.
해당 배포하는 깃에 들어가 파일을 보니, 다음과 같은 구조로 되어있었다.
자세히보면 src/main/java/com/ycar
내부에 ~Application.java
라는 파일이 두개가 있다. 즉, @SpringBootApplication
어노테이션이 붙은 클래스가 두개이며, 어플리케이션 주입 처리가 잘못되어있다는 것을 알 수 있다.
심지어 pom.xml 에서 @SpringBootApplication이 시작하는 루트도 잘못되어 있음을 알 수 있다
<groupId>com.exmaple</groupId>
이 아니라,
<groupId>com.ycar.boot</groupId>
로 시작해야한다.
현재 오류의 문제점은
package 루트가 중복으로 되어있다는 점
src/main/java/com/ycar
내부에 par과 passenger 로 나뉘어야 한다.
현재는 passenger 패키지 부분이 중복으로 들어가 있는 것을 알 수 있다. 아마 버전 업데이트를 하면서 복사-붙여넣기를 하다 중복이 된 것이 아닐까 싶다.
pom.xml 에서 groupId와 artifactId, name을 변경해야 한다. 기존에 setting 했던 id와 name이 덮어씌워지면서 충돌이 나고 있다.
test 패키지에 있는 passenger 파일도 삭제해야 한다. @SpringBootApplication 을 하나로 명시하고자 하기때문에, test 패키지도 정리해야 한다.
build 실패를 위의 문제점 1~3 과 같이 어림짐작으로 해결했는데, 왜 이렇게 되는지 그 원인과 구조를 알고싶었다. 이거는 여기로 올 것.