Maven은 프로젝트 빌드 및 관리를 위한 강력한 도구입니다. Maven을 사용하면 프로젝트의 여러 측면을 구성할 수 있는데, 이 중에서도 속성(Properties)를 다루는 것은 매우 중요합니다. 속성은 프로젝트의 여러 부분에서 사용되는 값들을 저장하고, 사용하기 쉽게 만들어줍니다.
이 블로그 포스트에서는 Maven 속성의 기본 사용법부터 고급 기능까지 알아보겠습니다.
기본적인 속성 선언
Maven 속성은 pom.xml
파일에 선언됩니다. 다음은 간단한 속성의 선언 예시입니다.
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
위 예시에서 속성은 <properties>
태그 안에 선언되며, 각 속성은 <속성명>값</속성명>
형식으로 정의됩니다.
속성 값 사용하기
선언된 속성 값을 사용할 때에는 ${속성명}
형식으로 사용합니다.
<sourceEncoding>${project.build.sourceEncoding}</sourceEncoding>
<source>${maven.compiler.source}</source>
<target>${maven.compiler.target}</target>
외부 파일에서 속성 로드하기
가끔은 속성을 pom.xml
에 직접 선언하는 것이 아니라, 외부 파일에서 로드하여 사용하는 경우가 있습니다.
<build>
<filters>
<filter>config.properties</filter>
</filters>
</build>
config.properties
파일에는 다음과 같이 속성을 정의합니다.
db.url=jdbc:mysql://localhost:3306/mydb
db.username=myusername
db.password=mypassword
프로파일을 활용한 속성 설정
Maven은 프로파일(Profile) 기능을 제공하여 특정 환경에서만 적용되는 속성을 설정할 수 있습니다. 예를 들어, 개발 환경과 운영 환경에서는 서로 다른 데이터베이스 연결 설정이 필요할 때 프로파일을 사용할 수 있습니다.
<profiles>
<profile>
<id>development</id>
<properties>
<db.url>jdbc:mysql://localhost:3306/devdb</db.url>
<db.username>devuser</db.username>
<db.password>devpassword</db.password>
</properties>
</profile>
<profile>
<id>production</id>
<properties>
<db.url>jdbc:mysql://localhost:3306/proddb</db.url>
<db.username>produser</db.username>
<db.password>prodpassword</db.password>
</properties>
</profile>
</profiles>
결론
Maven을 사용하여 프로젝트를 빌드하고 관리할 때 속성을 적절히 활용하는 것은 매우 중요합니다. 속성을 올바르게 선언하고 활용하여 프로젝트를 효율적으로 구성하는 것은 좋은 개발 실천법이 될 것입니다.
위에서 설명한 내용 외에도 Maven 속성에 대해 더 많은 기능과 사용법이 있으니, 공식 Maven 문서를 참고하여 더 많은 정보를 얻을 수 있습니다.