Eclipse에서 생성한 Spring Project를 공유하고 다른 팀원이 Import하기
- Published on
- Published on
팀 프로젝트를 시작하며
팀을 구성하여 프로젝트를 진행할 때 우리는 Spring Legacy나 Boot 프로젝트를 Git Repository를 만들고 업로드하여 공유합니다. 이 때 팀원 A가 Eclipse(또는 STS)에서 만들어 준 스프링 프로젝트를 팀원 B가 Import하려 할 때 일반적으로는 File > Import > General > Existing Projects into Workspace를 사용해서 프로젝트를 불러오게 됩니다.

하지만 우리는 분명 A가 스프링 프로젝트를 만들고, 모든 파일을 git add 하여 커밋을 올린 것도 확인했는데 그 경로의 프로젝트를 내 컴퓨터에서 불러오려고 하니 프로젝트가 없다고 합니다. 대체 무슨 문제일까요?

원인
Eclipse(또는 STS)는 프로젝트를 생성하거나 Spring Initializr을 이용해 스프링 프로젝트를 생성하면 프로젝트 root 경로에 .classpath, .project 파일을 생성하여 프로젝트를 관리합니다. 그런데 이 파일들이 .gitignore에 추가되어 있습니다. 그러니 팀원 A가 프로젝트 소스코드를 git에 추가할 때 위 두 파일은 추가가 안 됐고, 팀원 B가 git clone을 통해 받아올 때는 .classpath, .project 파일이 없는 상태여서 당연히 정상적으로 불러오지 못할겁니다.
해결 방법
해결 방법은 크게 세 가지가 있습니다.
.classpath,.project파일을 git에 추가한다.- 파일을 강제로 추가하는 방법입니다.
.gitignore파일을 열고 저 두 파일명을 지워주면 저 파일을 git으로 관리할 수 있습니다. 또는git add -f .classpath같이.gitinore파일을 수정하지 않고 강제로 추가할 수도 있습니다. - 하지만 이 방법은 권장하지 않습니다. 나와 팀원의 개발 환경(시스템 경로 등)이 다를 수 있기 때문입니다.
- 파일을 강제로 추가하는 방법입니다.
Eclipse가 아니라 Maven 프로젝트로 불러옵니다.
- 위에서 예시로 들었던
File > Import > General > Existing Projects into Workspace방법이 아니라File > Import > Maven > Existing Maven Projects를 사용해 불러옵니다. - 프로젝트 구조를 잘 뜯어 보면 알겠지만, Eclipse(STS)에서 만든 Spring Legacy Project 또는 Spring Boot Project는 정확히 말하자면 Spring Framework를 사용하는 Maven 프로젝트입니다.
pom.xml파일의 dependencies에 Spring을 추가해준 것이죠. - 그러므로 아래 사진과 같이 Maven 프로젝트로 불러오면
.classpath,.project파일이 없어도 정상적으로 프로젝트를 불러올 수 있습니다. - 이 방법은 intelliJ IDEA로 백엔드를 개발하시는 분들도 사용 가능합니다.
- 위에서 예시로 들었던
만약 본인이 FE 개발자여서 Spring Backend를 수정하지 않고, 단지 개발 테스트 목적으로 실행되는 백엔드 서버가 필요만 하신 분이라면 이렇게 프로젝트를 불러오지 않아도 됩니다. Spring Boot는
.jar파일로 배포할 수 있다는 장점이 있으니 이를 활용하시면 됩니다.cd backend-project-path ➜ ls mvnw mvnw.cmd pom.xml README.md src target ./mvnw package ➜ ls target classes some-maven-directories backend-project-0.0.1-SNAPSHOT.jar java -jar target/backend-project-0.0.1-SNAPSHOT.jar
Prerequisites: 이 글에서 언급되었으나 깊게 설명하지 않은 내용입니다.
- git, gitignore
- Maven