Особенности использования плагина jasperreports-maven-plugin в CentOS

Третьего дня понадобилось под 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 ]
You can leave a response, or trackback from your own site.

Leave a Reply