증상
Java 8에서는 정상적으로 빌드가 되던 프로젝트인데 Java 11에서는 빌드 중 에러가 발생함
Failed to execute goal org.apache.maven.plugins
war (default-war) on project apiserver: Execution default-war of goal org.apache.maven.plugins war failed: An API incompatibility was encountered while executing org.apache.maven.plugins war: java.lang.ExceptionInInitializerError: null
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 44.578 s
[INFO] Finished at: 2018-10-25T18:02:32+09:00
[INFO] Final Memory: 39M/137M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-war-plugin:2.6:war (default-war) on project apiserver: Execution default-war of goal org.apache.maven.plugins:maven-war-plugin:2.6:war failed: An API incompatibility was encountered while executing org.apache.maven.plugins:maven-war-plugin:2.6:war: java.lang.ExceptionInInitializerError: null
[ERROR] -----------------------------------------------------
[ERROR] realm = plugin>org.apache.maven.plugins:maven-war-plugin:2.6
[ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
[ERROR] urls[0] = file:/home1/irteamsu/.m2/repository/org/apache/maven/plugins/maven-war-plugin/2.6/maven-war-plugin-2.6.jar
[ERROR] urls[1] = file:/home1/irteamsu/.m2/repository/backport-util-concurrent/backport-util-concurrent/3.1/backport-util-concurrent-3.1.jar
[ERROR] urls[2] = file:/home1/irteamsu/.m2/repository/junit/junit/3.8.1/junit-3.8.1.jar
[ERROR] urls[3] = file:/home1/irteamsu/.m2/repository/org/slf4j/slf4j-jdk14/1.5.6/slf4j-jdk14-1.5.6.jar
[ERROR] urls[4] = file:/home1/irteamsu/.m2/repository/org/slf4j/jcl-over-slf4j/1.5.6/jcl-over-slf4j-1.5.6.jar
[ERROR] urls[5] = file:/home1/irteamsu/.m2/repository/org/apache/maven/reporting/maven-reporting-api/2.2.1/maven-reporting-api-2.2.1.jar
[ERROR] urls[6] = file:/home1/irteamsu/.m2/repository/org/apache/maven/doxia/doxia-sink-api/1.1/doxia-sink-api-1.1.jar
[ERROR] urls[7] = file:/home1/irteamsu/.m2/repository/org/apache/maven/doxia/doxia-logging-api/1.1/doxia-logging-api-1.1.jar
[ERROR] urls[8] = file:/home1/irteamsu/.m2/repository/commons-cli/commons-cli/1.2/commons-cli-1.2.jar
[ERROR] urls[9] = file:/home1/irteamsu/.m2/repository/org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-4/plexus-interactivity-api-1.0-alpha-4.jar
[ERROR] urls[10] = file:/home1/irteamsu/.m2/repository/org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3.jar
[ERROR] urls[11] = file:/home1/irteamsu/.m2/repository/org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.jar
[ERROR] urls[12] = file:/home1/irteamsu/.m2/repository/org/apache/maven/maven-archiver/2.6/maven-archiver-2.6.jar
[ERROR] urls[13] = file:/home1/irteamsu/.m2/repository/org/apache/maven/shared/maven-shared-utils/0.7/maven-shared-utils-0.7.jar
[ERROR] urls[14] = file:/home1/irteamsu/.m2/repository/com/google/code/findbugs/jsr305/2.0.1/jsr305-2.0.1.jar
[ERROR] urls[15] = file:/home1/irteamsu/.m2/repository/org/codehaus/plexus/plexus-io/2.4.1/plexus-io-2.4.1.jar
[ERROR] urls[16] = file:/home1/irteamsu/.m2/repository/commons-io/commons-io/2.2/commons-io-2.2.jar
[ERROR] urls[17] = file:/home1/irteamsu/.m2/repository/org/codehaus/plexus/plexus-archiver/2.9/plexus-archiver-2.9.jar
[ERROR] urls[18] = file:/home1/irteamsu/.m2/repository/org/apache/commons/commons-compress/1.9/commons-compress-1.9.jar
[ERROR] urls[19] = file:/home1/irteamsu/.m2/repository/org/codehaus/plexus/plexus-interpolation/1.21/plexus-interpolation-1.21.jar
[ERROR] urls[20] = file:/home1/irteamsu/.m2/repository/com/thoughtworks/xstream/xstream/1.4.4/xstream-1.4.4.jar
[ERROR] urls[21] = file:/home1/irteamsu/.m2/repository/xmlpull/xmlpull/1.1.3.1/xmlpull-1.1.3.1.jar
[ERROR] urls[22] = file:/home1/irteamsu/.m2/repository/xpp3/xpp3_min/1.1.4c/xpp3_min-1.1.4c.jar
[ERROR] urls[23] = file:/home1/irteamsu/.m2/repository/org/codehaus/plexus/plexus-utils/3.0.20/plexus-utils-3.0.20.jar
[ERROR] urls[24] = file:/home1/irteamsu/.m2/repository/org/apache/maven/shared/maven-filtering/1.3/maven-filtering-1.3.jar
[ERROR] urls[25] = file:/home1/irteamsu/.m2/repository/org/sonatype/plexus/plexus-build-api/0.0.4/plexus-build-api-0.0.4.jar
[ERROR] urls[26] = file:/home1/irteamsu/.m2/repository/org/apache/maven/shared/maven-mapping/1.0/maven-mapping-1.0.jar
[ERROR] Number of foreign imports: 1
[ERROR] import: Entry[import from realm ClassRealm[maven.api, parent: null]]
[ERROR]
[ERROR] -----------------------------------------------------
[ERROR] : Index 1 out of bounds for length 1
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginContainerException
해결 방법
Spring Boot 2.0으로 업데이트하니 빌드 시 문제가 발생하지 않음을 확인
1.8 이하에서는 위와 동일한 빌드 에러가 발생함
참고 자료
https://stackoverflow.com/questions/46353477/jdk9-and-maven-jar-plugin
Java 9부터 기존 maven plugin들이 정상동작하지 않는 증상이 발견되었으며 maven plugin의 버전을 업데이트하여 해결했다는 사례가 존재함