프로그래밍 노트/빌드도구

메이븐 저장소 메이븐 저장소는 세 가지로 나눌 수 있다. 중앙 저장소 원격 저장소 로컬 저장소 중앙 저장소 : 오픈 소스 라이브러리, 메이븐 플러그인, 메이븐 아키타입을 관리하는 저장소. 메이븐 2.0의 중앙 저장소의 URL은 http://repo1.maven.org/maven2/ 이다. 중앙 저장소는 개발자가 임의로 라이브러리를 배포할 수 없다. 원격 저장소 : 중앙 저장소에 없는 라이브러리를 한 곳에 모아두기 위하여 별도의 메이븐 저장소를 설치해 관리하는 것이 가능한데 이것이 원격 저장소이다. 원격 저장소는 회사내에서만 사용하기 위한 용도로 많이 사용된다. 로컬 저장소 : 로컬 저장소는 메이븐을 빌드할 때 다운로드하는 라이브러리, 플러그인을 관리하는 개발자 PC의 저장소이다. (USER_HOME/.m..
테스트하기 mvn test test페이즈는 target/test-classes에 컴파일한 단위 테스트 클래스를 실행하고 그에 따른 결과물을 target/surefire-reports 디렉토리에 생성한다. (test-compile 페이즈에 의존 관계를 가진다.) 만약 테스트 스위트(TestSuite)별로 나누어서 테스트할 필요가 있다면 test 옵션을 사용한다. 다음과 같이 원하는 테스트 클래스를 지정할 수 있다. mvn -Dtest=원하는클래스 test mvn -Dtest=원하는클래스1,원하는클래스2 test 단위 테스트가 실패하여 빌드가 실패할 경우 (테스트케이스 관리가 안될 경우) 테스트를 스킵할 수 있다. mvn -Dmaven.test.skip=true test 매번 인자로 전달하기 싫다면 pom...
자원 복사 및 소스 코드 컴파일 process-resources와 compile 페이즈를 알아보자. 아래와 같은 명령어를 실행하면 src/main/java 디렉토리 아래의 모든 소스 코드가 컴파일된다. mvn compile compile 페이즈 실행 과정 의존 관계에 있는 process-resources 페이즈 실행 (resources 플러그인의 resources골이 실행) resources 골은 src/main/resources 디렉토리에 있는 모든 자원을 target/classes 디렉토리로 복사 만약 엘리먼트를 재정의했다면 재정의한 규칙에 따라 자원을 복사한다. ... src/main/resources src/main/java **/*.java ... 마이바티스 프레임워크..
메이븐 페이즈와 플러그인 메이븐이 제공하는 모든 기능은 플러그인 기반으로 동작한다. 메이븐 페이즈 또한 플러그인을 통하여 실질적인 작업이 실행된다. 고로 메이븐에서 플러그인은 매우 중요하다..! 메이븐 플러그인 ... org.apache.maven.plugins maven-compiler-plugin 2.1 ... 위의 소스는 compiler 플러그인을 사용하도록 설정한 것이다. 메이븐 플러그인은 하나의 플러그인에서 여러 작업을 수행할 수 있도록 지원한다. 실행할 수 있는 각각의 작업을 골(goal)이라고 정의한다. 예를 들면 compiler 플러그인은 하나지만 이 플러그인은 아래와 같은 골(goal)들을 지원한다. sourceDirectory의 소스 코드를 컴파일 하는 compile 골 testSour..
메이븐 라이프사이클 참고) 메이븐 Getting Started 메이븐은 빌드 라이프사이클을 가지며, 라이프사이클의 각 단계를 페이즈라고 부른다. 메이븐의 라이프사이클과 페이즈 메이븐 빌드를 앤트(Ant)빌드와 비교해보자. 앤트는 빌드하기 위한 단위로 타겟을 사용한다. 앤트 기반의 빌드 스크립트 앤트 빌드는 엘리먼트 생성과 엘리먼트 사이의 의존관계를 개발자가 자유롭게 설정할 수 있다. 메이븐 빌드보다 자유로운편이라 느껴진다. 프로젝트 빌드 과정(일반적) 빌드 결과물 삭제 컴파일에 필요한 자원을 복사 소스 코드 컴파일 테스트 패키지 배포 앤트(Ant)에서는 이 각각의 단계를 으로 만든 후 각 타겟의 의존 관계를 만들어 순서를 결정한다. 메이븐도 순서는 같으며, 다른 점..
메이븐 설정 파일 알아야할 설정 파일 settings.xml (메이븐 빌드툴 관련) pom.xml (메이븐 기반 프로젝트에서 사용하는 설정 파일) pom.xml 설정 파일 메이븐은 빌드와 관련된 정보를 프로젝트 객체 모델(Project Object Model)이라는 이름으로 정의한다.메이븐의 'mvn' 명령은 기본적으로 pom.xml파일을 읽어 빌드를 실행한다. (pom.xml 파일이 아닌 다른 설정 파일을 사용하려면 -f 또는 --file 옵션을 사용한다.) mvn -f customPom.xml package POM은 크게 4가지 카테고리로 분류된다. 프로젝트 기본 정보 빌드 설정 프로젝트 관계 설정 (dependency 관련) 빌드 환경 (빌드환경에 따른 정보, 프로파일) 프로젝트 기본 정보프로젝트 ..
메이븐 설정 파일 알아야할 설정 파일 settings.xml (메이븐 빌드툴 관련) pom.xml (메이븐 기반 프로젝트에서 사용하는 설정 파일) settings.xml 설정파일 MAVEN_HOME/conf 디렉토리에 위치하며 메이븐을 설치하면 기본으로 제공된다. (전역적)추가적인 설정이 필요한 경우 주석 처리되어 있는 부분을 제거하여 설정하는 것이 가능사용자별로 다른 설정을 하려면 USER_HOME/.m2 디렉토리에 settings.xml 설정 파일을 추가하여 설정하는 것이 가능하다. 사용자 설정 파일은 직접 생성해야한다. (MAVEN_HOME/conf/settings.xml 을 복사해서 사용가능)로컬 저장소의 위치를 바꾸고 싶다면 MAVEN_HOME/conf 디렉토리의 settings.xml 파일을 ..
빌드도구의 등장"개발자들이 단순, 반복적으로 실행하는 작업을 자동화함으로써 업무를 효율화할 수 있는 방법이 없을까?"지원 기능 목록 빌드 무선화 리포팅 의존 관계 소스 코드 관리 릴리즈 배포 앤트 메이븐메이븐은 메이븐이 접근할 수 있는 저장소를 지원저장소를 통하여 템플릿 프로젝트인 아키타입(Archetype), 의존관계에 있는 라이브러리, 메이븐 플러그인 기능을 지원(메이븐만 설치하면 프로젝트 빌드에 필요한 라이브러리, 플러그인을 저장소에서 개발자 PC로 자동 다운로드) 메이븐 설치 및 템플릿 프로젝트 생성 메이븐 설치 최신버전 다운(http://maven.apache.org/download.cgi) 시스템 환경 변수에 MAVEN_HOME 추가 시스템 환경 변수 PATH에 MAVEN_HOME/bin 추가..
메이븐(Maven) 빌드 생명주기앞에서도 설명했듯이메이븐 실행 단위를 골(Goal)이라고 하며, 골들이 상호 연관해 실행되는데 그러한 관계를 메이븐 골의 생명주기라고 한다. CleanValidate => Compile => Test => Package => InstallDeploy로 구성되어있으며각 골들이 하는 역할을 간단히 설명 Clean=> build 후 만들어지는 Target의 디렉터리를 삭제한다.Validate=> 올바른 Pom.xml인지 확인한다.Compile=> 의존성들을 가져오고, Target/classes 디렉터리에 빌드한다.Test=> 테스트 코드를 실행한다.Package=> Test 상태가 성공적으로 실행된 다음에 실행되며 War 나 Jar 파일같은 결과물을 생성한다. Install=>..
pom.xml, 에서 사용되는 메이븐 기본 Properties 빌드'target' 폴더${project.build.directory} = ${pom.build.directory}'target/classes' 폴더${project.build.outputDirectory}프로젝트 이름${project.name} = ${pom.name} 프로젝트 버전${project.version} = ${pom.version} = ${version}최종 파일 이름${project.build.finalName} 환경 변수시스템 PATH{env.PATH} 시스템 JAVA_HOME{env.JAVA_HOME} etcpom.xml이 위치하는 디렉터리${basedir}
깡냉쓰
'프로그래밍 노트/빌드도구' 카테고리의 글 목록 (2 Page)