속성
메이븐은 설정 파일에서 발생하는 중복 설정을 제거하기 위하여 속성 (<properties/> 엘리먼트)을 정의하고 설정 파일 전체에서 사용할 수 있다. 예를 들어 스트럿츠2, 스프링 프레임워크의 의존 관계 중복을 제거하려면 다음과 같이 설정할 수 있다.
<project>
<properties>
<struts2.version>2.1.8</struts2.version>
<srping.version>3.0.1.RELEASE</srping.version>
</properties>
<dependencies>
<!--spring framework-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<!--struts2 framework-->
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>${struts2.version}</version>
</dependency>
</dependencies>
</project>
<properties/> 엘리먼트에서 <property.name>value</property.name> 같은 형태로 정의 한후 ${property.name} 으로 접근이 가능하다. (개발자 정의 속성)
이 외에도 메이븐은 미리 예약되어 있는 속성이 있는데, pom/project 속성, settings 속성, 환경 변수 속성, 자바 시스템 속성이 있다.
pom/project 속성
${project.build.directory} : 'target' 디렉토리. 이 속성은 ${pom.build.directory}와 같다
${project.build.outputDirectory} : 'target/classes' 디렉토리.
${project.name}, ${pom.name} : 프로젝트 이름. <project>/<name> 엘리먼트 설정 값
${project.version}, ${pom.version} : 프로젝트 버전. 버전 정보는 접두사를 사용하지 않고 ${version}으로도 접근 가능하다. <project>/<version> 엘리먼트 설정 값
${project.build.finalName} : package 페이즈를 실행해 압축된 최종 파일 이름. <project>/ <build>/<finalName>엘리먼트 설정값
settings 속성
메이븐 관련한 속성은 settings.xml 파일에서 한다. settings.xml에 설정한 값은 settings 속성으로 참조할 수 있다. settings 속성은 settings 접두사를 사용한다.
- ${settings.localRepository} : 로컬 저장소 경로
환경 변수 속성
메이븐은 env 접두사를 사용하여 시스템 환경 변수 값을 참조할 수 있다.
- {env.PATH} : 시스템의 PATH 설정 값을 참조
- {env.JAVA_HOME} : 시스템의 JAVA_HOME 설정값 참조
자바 시스템 속성
메이븐은 자바 시스템 속성으로 설정된 모든 속성을 참조할 수 있다.
위의 4가지 말고 자주 사용되는 속성이 있는데 ${basedir}이다. ${basedir}속성은 pom.xml 설정 파일이 위치하는 디렉토리이다.
'프로그래밍 노트 > 빌드도구' 카테고리의 다른 글
[Maven] 메이븐 모듈 (0) | 2019.07.11 |
---|---|
[Maven] 메이븐 프로파일_1 (0) | 2019.05.02 |
[Maven] 메이븐 의존성 전이 (0) | 2019.03.31 |
[Maven] 메이븐 의존 라이브러리 적용 스코프 (0) | 2019.03.31 |
[Maven] 메이븐 의존 라이브러리 관리 (0) | 2019.03.31 |