Maven 입문 | Maven 빠르게 시작(퀵 가이드) | 인코딩 및 컴파일러 설정


이전에 “프로젝트 생성 및 실행"에서 만든 pom.xml을 편집하고, 인코딩 및 컴파일러의 버전을 설정해 보자.

보충

이전의 mvn package명령을 실행하면 다음과 같은 경고가 발생했다 (Win 환경).

···
[WARNING] Using platform encoding (MS932 actually) to copy filtered resources, i.e. build is platform dependent!
···
[WARNING] File encoding has not been set, using platform encoding MS932, i.e. build is platform dependent!
···

이번 설정을 하면, 경고가 사라지게 된다.

1.변경 전의 pom.xml

이전에 프로그램을 생성했다면 다음 pom.xml이 생성되어 있을 것이다.

my-app/pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.devkuma.app</groupId>
  <artifactId>my-app</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>my-app</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

2. 변경 후 pom.xml

pom.xml을 편집하여 다음 내용을 저장한다.

my-app/pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.devkuma.app</groupId>
  <artifactId>my-app</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>jar</packaging>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>
</project>

주요 변경 내용

properties를 추가하여 인코딩을 UTF-8 하고, 컴파일러 버전을 1.8로 설정한다. 자세한 내용은 다음과 같다.

  • project.build.sourceEncoding : 소스 속성 파일 등의 인코딩 설정
  • project.reporting.outputEncoding : 보고서 등의 출력 자원의 인코딩 설정
  • maven.compiler.source : javac 명령 -source 설정
  • maven.compiler.target : javac 명령의 -target 설정

기타 변경 사항

  • 빈 줄 추가
  • 새로운 junit 버전(4.12)으로 변경
  • name, url 태그 삭제 (지금은 불필요)

3. package 명령의 실행

경고가 나오지 않는 것을 다음 명령으로 확인해 보자.

$ mvn clean package

만약을 위해 이전의 자원을 clean으로 삭제한다.