Третьего дня понадобилось под CentOS мавеном собрать проект, в котором задействован плагин jasperreports-maven-plugin. Собирал как положено — мавен 3.3.3 и jdk 1.8.0.
Сборка начала валиться с ошибкой:
[ERROR] class file has wrong version 52.0, should be 50.0 |
Это навело на мысль, что плагин ищет джаву вовсе не в переменной окружения JAVA_HOME. Для начала выставил еще и переменную JDK_HOME, ошибка про версии пропала, но сборка все равно стопорилась:
Failed to execute goal org.codehaus.mojo:jasperreports-maven-plugin:1.0-beta-2:compile-reports (default) on project service-report: Error compiling report design : /home/jasper_project/service-report/src/main/jasperreports/MyReport.jrxml: Error compiling report design : /home/jasper_project/service-report/src/main/jasperreports/MyReport.jrxml : Error compiling report java source files: /home/jasper_project/service-report/target/jasperreports/java/MyReport_1432113573129_244012.java ... org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.codehaus.mojo:jasperreports-maven-plugin:1.0-beta-2:compile-reports (default) on project service-report: Error compiling report design : /home/jasper_project/service-report/src/main/jasperreports/MyReport.jrxml at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80) at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128) ... |
Похожий стек был обнаружен в этой старой теме JIRA и не похоже, чтобы разработчики пытались понять причину или пофиксить. А теперь, когда CodeHaus накрылся медным тазом, исследования ошибки вообще ждать не приходится.
По наитию пришла идея проверить взаимодействие плагина с переменной окружения PATH. И гипотеза подтвердилась — плагин ищет джаву именно там. Ошибка лечится командой (подставляйте свой путь к JDK):
export PATH=$PATH:"/usr/java/jdk1.8.0_31/bin" |
(с учетом, что в JAVA_HOME имеем:
export JAVA_HOME="/usr/java/jdk1.8.0_31" |
)
[sc:social_networks ]