Maven 빌드 구성 및 프로필 관리

빌드 태그 활용

Maven 프로젝트에서 build 태그는 기본 빌드 구성을 재정의할 때 사용됩니다. 기본 설정은 유효 POM에서 확인 가능하며, 사용자 정의가 필요할 때 명시적으로 선언합니다.

유효 POM 출력 명령
mvn help:effective-pom

빌드 태그 구조

빌드 구성은 세 가지 주요 요소로 분류됩니다:

디렉터리 구조 정의
<sourceDirectory>src/core/java</sourceDirectory>
<outputDirectory>target/classes</outputDirectory>
<resources>
  <resource>
    <directory>src/main/resources</directory>
  </resource>
</resources>
태그기능
sourceDirectory메인 소스 코드 위치
outputDirectory컴파일 결과 출력 경로
resources리소스 파일 디렉터리
플러그인 관리

pluginManagement를 통해 플러그인 버전을 중앙 관리합니다:

<pluginManagement>
  <plugins>
    <plugin>
      <artifactId>maven-surefire-plugin</artifactId>
      <version>3.0.0</version>
    </plugin>
  </plugins>
</pluginManagement>
생명주기 플러그인
<plugin>
  <artifactId>maven-compiler-plugin</artifactId>
  <executions>
    <execution>
      <phase>compile</phase>
      <goals>
        <goal>compile</goal>
      </goals>
    </execution>
  </executions>
</plugin>

JDK 버전 지정

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <configuration>
        <source>11</source>
        <target>11</target>
      </configuration>
    </plugin>
  </plugins>
</build>

Spring Boot 패키징

<build>
  <plugins>
    <plugin>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-maven-plugin</artifactId>
      <version>2.6.3</version>
    </plugin>
  </plugins>
</build>

의존성 범위 확장

import 범위

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-dependencies</artifactId>
      <scope>import</scope>
      <type>pom</type>
    </dependency>
  </dependencies>
</dependencyManagement>

runtime 범위

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-devtools</artifactId>
  <scope>runtime</scope>
</dependency>

프로필 관리

프로필은 환경별(개발/테스트/운영) 구성 관리를 지원합니다.

프로필 구성

<profiles>
  <profile>
    <id>dev</id>
    <activation>
      <activeByDefault>true</activeByDefault>
    </activation>
    <properties>
      <env>development</env>
    </properties>
  </profile>
</profiles>

다중 환경 설정

<build>
  <resources>
    <resource>
      <directory>src/main/resources</directory>
      <excludes>
        <exclude>application-*.yml</exclude>
      </excludes>
    </resource>
    <resource>
      <directory>src/main/resources</directory>
      <filtering>true</filtering>
      <includes>
        <include>application-${env}.yml</include>
      </includes>
    </resource>
  </resources>
</build>

프로필 활성화

명령행에서 프로필 지정:

mvn package -Denv=production

태그: maven 빌드구성 프로필관리 POM 빌드플러그인

7월 21일 18:38에 게시됨