메이븐 페이즈와 플러그인 메이븐이 제공하는 모든 기능은 플러그인 기반으로 동작한다. 메이븐 페이즈 또한 플러그인을 통하여 실질적인 작업이 실행된다. 고로 메이븐에서 플러그인은 매우 중요하다..! 메이븐 플러그인 ... org.apache.maven.plugins maven-compiler-plugin 2.1 ... 위의 소스는 compiler 플러그인을 사용하도록 설정한 것이다. 메이븐 플러그인은 하나의 플러그인에서 여러 작업을 수행할 수 있도록 지원한다. 실행할 수 있는 각각의 작업을 골(goal)이라고 정의한다. 예를 들면 compiler 플러그인은 하나지만 이 플러그인은 아래와 같은 골(goal)들을 지원한다. sourceDirectory의 소스 코드를 컴파일 하는 compile 골 testSour..
분류 전체보기
메이븐 라이프사이클 참고) 메이븐 Getting Started 메이븐은 빌드 라이프사이클을 가지며, 라이프사이클의 각 단계를 페이즈라고 부른다. 메이븐의 라이프사이클과 페이즈 메이븐 빌드를 앤트(Ant)빌드와 비교해보자. 앤트는 빌드하기 위한 단위로 타겟을 사용한다. 앤트 기반의 빌드 스크립트 앤트 빌드는 엘리먼트 생성과 엘리먼트 사이의 의존관계를 개발자가 자유롭게 설정할 수 있다. 메이븐 빌드보다 자유로운편이라 느껴진다. 프로젝트 빌드 과정(일반적) 빌드 결과물 삭제 컴파일에 필요한 자원을 복사 소스 코드 컴파일 테스트 패키지 배포 앤트(Ant)에서는 이 각각의 단계를 으로 만든 후 각 타겟의 의존 관계를 만들어 순서를 결정한다. 메이븐도 순서는 같으며, 다른 점..
느낀점 Git을 도입하려다보니, 생각해야되는게 생각보다 많았다. 무엇인가 변화를 주는 것은 어려운 것 같다. maven의 profile 과 module은 정말 편리한 기능인거 같음 maven 리포팅관련 기능도 살펴보아야함 주말에 Git을 해야함
maven plugin을 설정하고 mvn test 명령을 실행하였더니, 아래와 같은 오류가 났다. [ERROR] Error resolving version for plugin 'org.apache.maven.plugins:maven-dependency' from the repositories [local (C:\Users\xxx\.m2\repository), central (https://repo.maven.apache.org/maven2)]: Plugin not found in any plugin repository -> [Help 1] plugin을 찾을 수 없다는 오류인데, 처음에는 repository의 설정 문제라고 생각하였으나.. pom.xml plugin 설정에 version이 빠질때 발생할 ..
메이븐 설정 파일 알아야할 설정 파일 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 빌드의 이점을 정확하게 알기위해선 ant 빌드의 장,단점을 파악해야 그 진가를 알 수 있을 것 같이 보인다.ant 빌드를 간단히 알아보고, 왜 ant 빌드보다 maven이 많이 사용되는지 파악해보자
동기화된 컬렉션(thread-safe한 collection), 병렬처리 컬렉션 컬렉션 프레임워크 대부분 싱글 스레드 환경에서 사용할 수 있도록 설계Vector, Hashtable은 동기화된 (synchronized) 메소드로 구성되어 있기 때문에 멀티 스레드 환경에서 안전함하지만 ArrayList, HashSet, HashMap 은 멀티스레드 환경에서 안전하지 않다. 따라서 자바에서는 Collections의 synchronizedXXX() 메소드를 제공한다.매개값으로 컬렉션을 대입하면 동기화된 컬렉션을 리턴한다. 리턴 타입메소드(매개변수)설명 ListsynchronizedList(List list)List를 동기화된 List로 리턴MapsynchronizedMap(Map m)Map을 동기화된 Map으로 ..
알게된 것Spring의 bean 객체는 GarbageColecor 대상이 될까?Spring이 관리하는 bean은 스프링 컨테이너가 시작될 때 생성되고 스프링 컨테이너가 중지될 때 삭제가 됨Spring 싱글톤 객체가 단순한 Java 객체와 다른 이유는 컨테이너가 해당 객체에 대한 참조를 유지하며 언제든지 코드 아무곳에서나 사용할 수 있기 때문임즉, Spring Container가 bean을 잡고 있기 때문에 GC의 대상이 안되며, Spring Container가 중지되어야지만 삭제됨When is a Spring Singleton bean garbage collected?=> 대상 ㄴㄴ, The reason is spring containers always maintains a reference to it ..