반응형
Build Tool 선택
- Maven
- Gradle
Build란?
- 필요한 라이브러리를 다운받고 classpath에 추가합니다.
- 소스 코드를 컴파일 합니다.
- 테스트를 실행합니다.
- 컴파일된 코드를 packaing 합니다 -> jar / war / zip etc
- packing된 파일을 주로 artifacts라고 부르고, 서버나 레퍼지토리에 배포합니다.
Build Tool은 이러한 Task들을 자동화하게 해주고 그런 Task를 기술할수 있게 도와줍니다. 그렇게 기술된 파일을 빌드 스크립트로 부릅니다. 그러면 어디에 어떻게 기술하는지가 각 도구별로 다르겠죠? Apache Maven은 XML로 기술하고 Gradle은 Groovy나 Kotlin으로 빌드 스크립트를 작성합니다.
Maven
- Gradle은 build.gradle, Maven은 pom.xml에서 관리
Maven은 앞에서 말한 빌드 도구로써 주로자바기반의 프로젝트에서 많이 사용됩니다. XML기반으로 설정 모델을 제공하고 pom.xml 파일로 작성할 수 있습니다. 이 xml 파일만 보면 프로젝트 구조를 파악할 수 있는거죠. 즉, 무슨 라이브러리를 사용하나 (Dependency 들이 존재하고) 어떤 빌드 작업들이 있는지를 파악할 수 있습니다.
- 빌드 도구로써 주로 자바기반의 프로젝트에서 많이 사용됩니다.
XML기반으로 설정 모델을 제공하고 pom.xml 파일로 작성할 수 있습니다. - POM은 project object model의 약어입니다.
Maven 프로젝트는 Project Object Model로 정의할 수 있는데요, 이 POM을 pom.xml로 기술하게 됩니다. 우리가 웹 문서를 html파일로 작성하면 브라우저가 Document Object Model인 DOM을 만드는 것 처럼 pom.xml을 작성하면 Maven이 POM을 만들고 그 POM에 의해서 프로젝트의 dependency가 다운받아지고 플러그인이 설치되고 합니다. - Maven은 archetypes라는 프로젝트 템플릿을 제공해서 매번 같은 설정을 반복하지 않게 도와줍니다.
- 프로젝트에서 사용하는 외부 라이브러리인 dependency 를 관리해줍니다.
- 플러그인과 외부 라이브러리를 분리하여 관리합니다.
- dependency를 다운받는 Repository가 로컬이 될 수도 있고, Maven Central와 같은 공개된 Repository가 될 수도 있습니다. (nexus를 사용하면 비공개(Private) 레퍼지토리 생성가능)
Maven Dependency Scope
<scope>
compile: <scope />를 지정하지 않는 경우, 기본값으로 설정, 컴파일 의존성은 프로젝트의 컴파일, 테스트, 실행에 라이브러리가 필요 할 때 사용
provided: JDK 또는 컨테이너가 해당 라이브러리르 제공 할 때 설정, 즉 웹 애플리케이션 경우, JSP와 Servlet API등은 provided의 의존성으로 설정
runtime: 컴파일 시에는 사용되지 않으나, 실행과 테스트 시에는 필요할 때 설정, 대표적인 예가 JDBC 드라이버
system: provided의존성과 비슷하지만, 사용자가 jar 파일의 위치를 지정한다는 점이 다름.
system의존성을 사용하려면 <systemPath>..</systemPath> 엘리먼트를 이용하여 jar 파일의 위치를 지정해야 합니다. 그러나 사용자마다 개발 환경이 다를 수 있으므로 프로퍼티를 이용하여 jar 파일의 위치를 지정 하는 것이 권장
test: 실행에는 사용하지 않으나, 테스트 컴파일 및 실행 시에 필요할 때 설정, 대표적인 예로는 easymock, junit 등이 있습니다.
</scope>
Gradle
Gradle은 또 다른 Build Tool로서 Groovy 기반으로 빌드 스크립트를 작성하게 도와줍니다.
최근에는 코틀린도 지원해서 코틀린 기반으로 Build Script를 작성할 수 있습니다.
Spring기반 어플리케이션 프로젝트 만들기
Installing the Spring Boot CLI on Windows
- 사전작업
윈도우 JDK 설치 - 다운로드 및 배치
https://docs.spring.io/spring-boot/docs/current/reference/html/getting-started.html#getting-started.installing.cli.manual-installation 클릭하여 다운로드
spring-2.5.0.zip 압축해제
spring-2.5.0 폴더를 C:\ 루트로 이동 - 환경변수 등록
(윈도우10) Win+X, Y --- 고급 시스템 설정 클릭
시스템 속성 --- 고급 --- [환경 변수(N)...]
환경 변수 --- 시스템 변수(S) --- [새로 만들기(W)...]
새 시스템 변수 --- 변수 이름(N): SPRING_HOME --- 변수 값(V): C:\spring-2.5.0 --- [확인]
환경 변수 --- 시스템 변수(S) --- Path 선택 --- [편집(I)...] %SPRING_HOME%\bin 추가 --- [확인]
spring init --build maven -j 16 -g org.prgrms -a kdt-spring-demo -n kdt-spring-demo -x kdt-spring-demo
-x 압축해제
-g 그룹ID
-a 프로젝트 명
-n name
spring initializr 프로젝트 생성시 도움되는 사이트
위 명령어로 매번 생성하기에는 직관적이지 않아, 사이트에서 생성할 수 있습니다.
하지만 IntellJ로도 프로젝트 생성 할수 있습니다.
반응형
'개발 > Spring | Java | Error' 카테고리의 다른 글
자바의 정석- 프로세스와 쓰레드 (0) | 2022.03.13 |
---|---|
java.util.Objects, java.util.Random, java.util.regex(정규식) (0) | 2022.03.13 |
StringBuilder와 StringBuffer 차이 (0) | 2022.03.13 |
JAVA Object (0) | 2022.03.13 |
⚠ IntelliJ, JDBC 연결 설정 (0) | 2022.03.13 |