- Published on
Eclipse에서 생성한 Spring Project를 공유하고 다른 팀원이 Import하기
- Authors
- Name
- 신주용
팀 프로젝트를 시작하며
팀을 구성하여 프로젝트를 진행할 때 우리는 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