빌드 도구(5)
-
Maven
빌드 빌드란 소스코드 파일을 컴퓨터에서 실행할 수 있는 독립 소프트웨어 가공물로 변환하는 과정 혹은 그에 대한 결과물을 의미합니다. 즉, 우리가 작성한 소스 코드, 각종 파일 및 자원 등을 WAS가 인식할 수 있는 구조로 패키징하는 과정 및 결과물을 빌드라고 합니다. 빌드 도구 빌드 도구란 프로젝트 생성, 테스트, 빌드, 배포 등의 작업을 위한 프로그램을 의미합니다. 빠른 기간 동안 계속 늘어나는 라이브러리 추가, 라이브러리 버전 동기화의 어려움을 해소하고자 등장했습니다. Maven Maven이란 프로젝트의 전체적인 라이프 사이클을 관리하는 도구의 일종입니다. 필요한 특정 라이브러리를 pom.xml에 정의해 놓으면 내가 사용할 라이브러리 뿐만 아니라 해당 라이브러리가 작동하는데 필요한 다른 라이브러리들까..
2022.02.27 -
Gradle
Gradle의 개념 Gradle이란 Groovy를 기반으로 한 빌드 도구입니다. Ant와 Maven과 같은 이전 세대 빌드 도구의 단점을 보완하고 장점을 취합하여 만든 오픈소스로 공개된 빌드 도구 입니다. Ant XML 기반으로 빌드 스크립트를 작성 자유롭게 빌드 단위를 지정 간단하고 사용하기 쉬움 유연하지만 프로젝트가 방대해지는 경우 스크립트 관리나 빌드 과정이 복잡해짐 생명주기를 갖지 않아 각각의 결과물에 대한 의존 관계등을 정의해야함 Maven https://kchanguk.tistory.com/10?category=889165 Gradle의 특징 Gradle은 의존성 관리를 위한 다양한 방법을 제공하고 빌드 스크립트를 XML 언어가 아닌 JVM에서 동작하는 스크립트 언어 Groovy 기반의 DSL..
2021.04.14 -
maven-war-plugin
Maven-war-plugin은 pom.xml의 dependency에 선언된 각종 라이브러리들과 Java class 파일 웹 어플리케이션의 각종 리소스들을 모아서 하나의 Web Application Archive 압축 파일로 만들어줍니다. PS. War plugin 3.0 버전 이후에는 failOnMissingWebXml의 default 값이 false로 변경되었습니다. 1. War Plugin의 Goals war:war war 형태의 압축 파일로 빌드하는 명령입니다. 압축 파일은 WAS에 의해 압축이 풀리고 파일이 많은 경우에는 압축 해제 시간이 오래 걸릴 수 있습니다. war:exploded war 압축 형태를 해체한 디렉토리 형태 구조로 빌드하는 명령입니다. 압축 및 해제 과정이 불필요하고 별도의 ..
2020.04.04 -
Maven Scope
Maven은 dependency 엘리먼트 하위의 scope 엘리먼트를 통해 포함하려는 라이브러리의 범위를 지정할 수 있습니다. Compile 기본 영역으로 아무것도 지정되지 않은 경우 사용됩니다. Compile 의존 관계에 있는 것은 프로젝트의 모든 클래스에서 사용 가능합니다. Provided Compile과 매우 유사하지만, 실행 시에 의존 관계를 제공하는 JDK나 컨테이너에 대해서 적용됩니다. 예를 들어, JEE에 대한 웹 어플리케이션을 만드는 경우, 웹 컨테이너가 서블릿 API와 Java EE API 관련 클래스들을 제공하기 때문에 provided 영역으로 의존 관계가 세팅되어야 합니다. 이 영역은 컴파일과 테스트의 클래스 패스 용으로 사용되며, 자동 영역입니다. Runtime 의존 관계가 컴파일시..
2020.04.01 -
Maven Profile
Maven Profile란 Maven Profile란 특정 Build 환경에 맞춘 리소스의 재배치 및 환경에 대한 옵션 설정들을 실행할 수 있게 하는 기능입니다. 일반적으로 빌드 환경을 개발 / 알파 / 스테이징 / 운영 시스템 단위로 구분한다고 했을 때, 각 단계에서 필요로 하는 설정 정보나 리소스 파일들을 배치시키는 역할을 합니다. Maven Profile 사용법 local false local true dev false dev ../../deploy alpha true alpha ../../deploy Id: prlfile Id Maven.test.skip: maven test를 skip할 것인지의 여부 Deployee.phase: 환경별 phase 정보를 구분하여, 리소스 관리를 하도록 함 Act..
2020.03.31