티스토리 뷰
[예제로 배우는 스프링 입문] 2. 예제 프로젝트 준비를 보고 학습한 내용을 기록.
예제 프로젝트 준비
✔️ 프로젝트 소개
스프링 프레임워크를 사용해서 동물병원을 예제로 만든 아픈 동물 등록, 주인 등록, 예약 등을 할 수 있는 간단한 웹 애플리케이션이다.
✔️ 프로젝트 클론
위 프로젝트를 클론한다. (git@github.com:spring-projects/spring-petclinic.git)
커맨드로 클론하는 방법이 있으나 인텔리제이의 [New > Project From Version Control...] 을 이용하여 클론하였다.
✔️ 프로젝트 빌드
spring-petclinic 위치에서 다음을 실행한다.
# 메이븐으로 프로젝트 빌드
./mvnw package
아래와 같이 한참동안 다운로드가 진행되었다.
...
Downloading from central: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-containers/1.0-alpha-30/plexus-containers-1.0-alpha-30.pom
Downloaded from central: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-containers/1.0-alpha-30/plexus-containers-1.0-alpha-30.pom (0 B at 0 B/s)
Downloading from spring-snapshots: https://repo.spring.io/snapshot/org/codehaus/plexus/plexus-utils/1.4.5/plexus-utils-1.4.5.pom
Downloading from spring-milestones: https://repo.spring.io/milestone/org/codehaus/plexus/plexus-utils/1.4.5/plexus-utils-1.4.5.pom
Downloading from central: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-utils/1.4.5/plexus-utils-1.4.5.pom
Downloaded from central: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-utils/1.4.5/plexus-utils-1.4.5.pom (0 B at 0 B/s)
Downloading from spring-snapshots: https://repo.spring.io/snapshot/org/codehaus/plexus/plexus-classworlds/1.2-alpha-9/plexus-classworlds-1.2-alpha-9.pom
Downloading from spring-milestones: https://repo.spring.io/milestone/org/codehaus/plexus/plexus-classworlds/1.2-alpha-9/plexus-classworlds-1.2-alpha-9.pom
...
여기서 mvnw란 무엇일까?
mvnw는 Maven Wrapper의 줄임말로서, 특정 버전의 Maven이 필요한 프로젝트 (또는 Maven을 설치하지 않으려는 사용자)를 위한 훌륭한 선택이라고 할 수 있다. 운영 체제에 여러 버전을 설치하는 대신 프로젝트에서 요구하는 버전으로 유지하기 위해 사용하는 도구이다.
...
[INFO] --- maven-jar-plugin:3.2.0:jar (default-jar) @ spring-petclinic ---
[INFO] Building jar: /Users/yjlee/dev/spring-petclinic/target/spring-petclinic-2.4.0.BUILD-SNAPSHOT.jar
[INFO]
[INFO] --- spring-boot-maven-plugin:2.4.0:repackage (repackage) @ spring-petclinic ---
[INFO] Replacing main artifact with repackaged archive
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:20 min
[INFO] Finished at: 2020-12-20T17:51:26+09:00
[INFO] ------------------------------------------------------------------------
빌드 성공!
✔️ 프로젝트 실행
방법1: 프로젝트를 실행하기 위한 명령을 실행한다.
# 빌드한 jar 파일 실행
java -jar target/*.jar
cf. package라는 Maven Lifecycle:
메이븐 패키지 빌드를 실행하면 이 프로젝트를 빌드해서 패키지 파일을 만든다 .근데 이 프로젝트는 jar 프로젝트이다. 어떻게 알 수 있냐면 pom.xml 파일에 <packaging></packaging>이라는 옵션을 지정하지 않으면 기본적으로 jar(자바 애플리케이션 아카이브) 프로젝트가 된다. 그래서 빌드시 jar 파일이 생성된다.
...
2020-12-20 18:08:11.475 INFO 72194 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''
...
Tomcat started on port(s): 8080 (http) with context path '' -> 톰캣이 8080 포트에 떴다는 것을 로그 메시지에서 확인할 수 있다.
localhost:8080으로 접속해보면 PetClinic 애플리케이션을 확인할 수 있다.
방법2: PetClinicApplication.java 파일의 main 메서드를 실행한다. (Mac 단축키: SHITF + CONTROL + R)
728x90
'dev > java' 카테고리의 다른 글
[Java] Switch-case 문법과 예시 (0) | 2020.12.24 |
---|---|
[Java] 자동 형변환, 명시적 형변환 (0) | 2020.12.23 |
[Spring] 프로젝트 살펴보기 (예제로 배우는 스프링 입문 강의 따라하기) (0) | 2020.12.21 |
macOS에 IntelliJ IDEA 설치하기 (Java IDE, SpringBoot 개발 환경) (2) | 2020.08.19 |
[Spring Boot] Mac OS X 환경 - Spring Boot 설치하기 (0) | 2020.08.05 |
댓글