메이븐으로 컴파일하다가 java.nio.BufferOverflowException 에러가 발생하는 경우가 있다.

구글링해보니 여러가지 원인이 있을 수 있는데 메모리가 부족한 경우에도 발생할 수 있다는 얘기도 있으나
대부분은 운영체제의 기본 인코딩과 다른 인코딩의 소스를 컴파일할 때나 (소스안에 주어진 인코딩으로 인식불가능한 캐릭터가 들어있다든가 하는 식으로) 소스가 깨진 경우 에러가 발생한다고 나온다.

결론은 소스의 정확한 인코딩을 메이븐 maven-compiler-plugin에 알려줘야 한다는 것이다. 요렇게 설정하거나

   <plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
     <encoding>UTF-8</encoding>
    </configuration>
   </plugin>

<maven.compiler.encoding>UTF-8</maven.compiler.encoding> 프로퍼티를 통해 인코딩을 설정할 수 있다.
Posted by 에코지오
,