본문 바로가기

공부/Maven

[Maven] Dependency의 JavaDoc, Source를 이클립스에 다운로드하는 방법 1. pom.xml에 다음을 추가하여 maven-eclipse-plugin 플러그인을 추가 (굵은 글씨체 부분이 중요) maven-eclipse-plugin2.82.0/truetrue 2. pom.xml 파일을 우클릭한 후, Run As > Maven Build...를 수행 3. Goal에 eclipse:eclipse를 추가한 후, 실행 출처: 자바 세상의 빌드를 이끄는 메이븐 (박재성 저) 더보기
개인용 Java 기반 프로젝트 환경 설치 - (5) 표준 프레임워크 - 서버용 개발환경 1. 개요 전자정부 프레임워크는 공공 사업에서의 프레임워크 일원화, 컴포넌트 표준화 등의 목적으로 정부 주도하에 개발된 프레임워크이며, 더 자세한 내용은 하기의 홈페이지에서 확인할 수 있다. 표준프레임워크 : http://www.egovframe.go.kr/ 표준 프레임워크의 서버 환경은 아래와 같은 환경을 제공하며, 설치시 별도의 연동이나 설정을 최소화함으로써 효율적인 서버 환경을 구축할 수 있도록 해준다. 현재 설치할 서버 버전은 2.0.0이며, 표준 프레임워크 홈페이지의 "다운로드 > 개발환경"에서 "서버용 개발환경"을 다운로드 받으면 된다. 2. 설치 과정 표준 프레임워크 서버용 개발환경은 아래와 같이 구성되어있다. TomcatSubversionMavenHudsonNexus 설치는, 원하는 컴포넌.. 더보기
[서적 핵심 정리] 메이븐 아키타입 메이븐 아키타입사용자가 생성한 별도의 아키타입을 이용하여 pom.xml 및 프로젝트 샘플을 제공할 수 있음아키타입 생성 절차프로젝트 디렉토리 구조 및 pom.xml 파일 생성archetype 플러그인의 create-from-project 골 실행메이븐 공통 저장소(Nexus)에 생성한 archetype 배포추후 프로젝트 생성 시, 생성한 archetype 사용하여 프로젝트 생성 출처: 자바 세상의 빌드를 이끄는 메이븐 (박재성 저) 더보기
[서적 핵심 정리] Maven 사내 저장소 설치 및 활용 앤트런 플러그인 (maven-antrun-plugin)메이븐에서 앤트 명령어를 사용할 수 있게 해주는 플러그인 넥서스 - 메이븐 내부 저장소 (Nexus)내부 메이븐 저장소의 이점라이브러리 버전 충돌 최소화3자 라이브러리 사용 시 내부 저장소에 저장 가능의존 관계 라이브러리를 하나의 저장소로 관리 가능중앙저장소의 프록시 역할을 수행하므로, 초기 빌드 시간 단축넥서스 저장소 종류프록시 (proxy)메이븐 공개 저장소의 프록시 역할을 수행하는 저장소호스티드 (hosted)3자 라이브러리 관리 용도버추얼 (virtual)등록된 저장소에 대해 다른 URL로 접근 가능하게 하기 위한 가상의 저장소저장소 그룹 (group)설정한 저장소의 그룹넥서스 저장소 설정 방법settings.xml의 엘리먼트에 nexus의 i.. 더보기
[서적 핵심 정리] Maven 모듈 상속 (inheritance)메이븐에서 모든 POM 파일은 최상위 POM을 상속받음메이븐 상속 기능을 사용하기 위해서는 부모 POM 파일의 엘리먼트의 값을 pom으로 설정 집합 (aggregation)일반적으로 프로젝트가 커지면 여러 개의 프로젝트로 분리하나, 각 프로젝트 사이의 공통 모듈이 존재하므로, 메이븐을 사용 시 이러한 방식보다는 프로젝트를 여러 개의 모듈로 분리하는 것이 좋음하나의 프로젝트에 있는 여러 개의 모듈을 빌드할 때, 같은 단위로 빌드할 수 있도록 지원하는 기능 엘리먼트로 설정 의존 관계 (dependency)모듈 사이 의존관계가 발생시 설정라이브러리 등록과 동일한 방식으로 설정 () dependency 플러그인의 copy-dependencies 골특정 디렉토리에 배포된 파일을 복사할.. 더보기
[서적 핵심 정리] 리포팅 기능을 활용한 문서 관리 언더커버 (undercover-maven-plugin)단위 테스트 테스트 소스 커버리지 리포트 툴 파인드 버그 (findbugs-maven-plugin)정적 소스 코드 분석 툴버그 발생 가능성이 있는 코드, 나쁜 개발 습관으로 작성한 코드, 성능에 영향을 미칠 것으로 생각하는 코드에 대한 정보를 제공 PMD 리포트 (maven-pmd-plugin)정적 소스 코드 분석 툴애플리케이션별로 제공하는 룰셋이 있어, 이를 설정할 수 있음 CPD 리포트 소스 내에 존재하는 중복 코드를 찾아주는 툴PMD 툴에 포함되어 있음 (pmd:cpd 골을 실행) 제이디펜드 리포트 (jdepend-maven-plugin)소스코드의 복잡도를 분석하는 툴주요 용어클래스와 인터페이스 수TC : 패키지가 포함하는 클래스/인터페이스 수C.. 더보기
[서적 핵심 정리] Maven 프로파일, 배포 빌드 이식성특별한 수정이나 변경없이 다양한 환경에 배포/운영이 가능함이식성을 확보해야 하는 예데이터베이스 설정로깅 설정프레임워크와 관련한 설정서버 설정컴파일러 설정 프로파일 서로 다른 환경에서의 설정을 관리할 수 있도록 메이븐에서 제공하는 기능 엘리먼트 하위의 엘리먼트를 통해 프로파일 id를 정할 수 있으며, 엘리먼트 내에 property 형태로 각 프로파일마다 사용하는 설정값을 지정할 수 있음 배포 (Tomcat 플러그인, Cargo 메이븐 플러그인)Tomcat 플러그인을 이용하여 개발 서버에 직접 war 파일을 배포할 수 있음tomcat-maven-plugin 을 메이븐 플러그인으로 설정톰캣 서버의 manager를 추가 (tomcat-users.xml 파일 편집)tomcat 플러그인의 deploy 골.. 더보기
[서적 핵심 정리] Maven과 데이터베이스 통합 단위 테스트익히 알려진 대로, 단위 테스트는 개별 소스 단위의 모듈/메소드 등이 원하는 대로 동작하는지 검증하는 테스트를 의미따라서, 아래와 같이 외부 시스템이 포함되는 테스트의 경우, 원칙적으로는 단위 테스트로 보지 않음 (Working Effectively with Legacy Code, Michael C. Feathers)데이터베이스에 하는 테스트네트워크와 통신하는 테스트파일 시스템에 하는 테스트테스트를 실행할 때 추가적인 작업이 필요한 테스트 (설정 파일 수정 등)단, 웹 개발 프로젝트 등에서 데이터베이스를 배제한 단위 테스트는 현실적으로 어려움 메이븐 SQL 플러그인 (sql-maven-plugin)execute Goal을 통해 파일에서 관리하는 모든 SQL 문을 실행할 수 있도록 지원따라서, .. 더보기
[서적 핵심 정리] Maven과 이클립스 통합 메이븐 플러그인 소개 페이지참고 : https://maven.apache.org/plugins/maven-compiler-plugin/Goal Overview나 Usage를 살펴, 플러그인의 용도나 용법을 알 수 있음Required Paramters나 Optional Parameters를 활용하여 설정 값을 설정할 수 있음 메이븐 플러그인 설정POM의 엘리먼트에 플러그인의 , , 등을 명시 엘리먼트 하위의 엘리먼트를 사용하면 플러그인의 기본 설정을 변경 가능예) 소스 컴파일러 버전을 JDK 6으로 지정: 1.6 메이븐으로 생성한 프로젝트를 이클립스 프로젝트로 변경mvn eclipse:eclipsepom.xml 파일에 설정 엘리먼트는 이클립스 프로젝트의 .classpath 파일(프로젝트의 자원 정보를 기술.. 더보기
[서적 핵심 정리] Maven 의존 라이브러리 관리 메이븐 저장소중앙 저장소오픈 소스 라이브러리, 메이븐 플러그인, 메이븐 아키타입 관리http://repo1.maven.org/maven2/개발자 임의로 라이브러리 배포 불가원격 저장소사내 원격 저장소 또는 별도의 3자 업체에서 제공하는 저장소로컬 저장소개발자 PC의 저장소 메이븐 저장소 설정 엘리먼트 설정을 통해 추가 저장소를 설정 가능 메이븐 의존 라이브러리 관리 엘리먼트 설정을 통해 라이브러리 설정 엘리먼트의 의존성 관리예1) [3.8, 4.8): 3.8 버전을 포함하고, 4.8보다 작은 버전을 사용예2) LATEST/RELEASE - 가장 최신 버전 사용개발중인 라이브러리에 SNAPSHOT 접미어 사용 시, 매 빌드 시 최신 버전의 라이브러리 다운로드 엘리먼트의 속성compile : 해당 라이브러리.. 더보기