Maven 2.1 i Hudson
Ważna rzecz. Otóż Hudson nie za bardzo chce działać z Mavenem 2.1.0. Nie mam pojęcia co się popieprzyło, bo błąd, który się objawia mówi tyle co nic. Generalnie coś nie tak z uruchamianiem jest. Mi wywaliło się na Cobertura Report, ale w fabryczce poleciał m.n. Checkstyle i Changelog.
Dla zainteresowanych trace:
Listing 1. Hudslon + Maven 2.1 Failtrace
[INFO] Preparing cobertura:cobertura
[HUDSON] Archiving C:\.hudson\jobs\Properties-Translator\workspace\trunk\pom.xml to
C:\.hudson\jobs\Properties-Translator\modules\pl.koziolekweb.propertiestranslator$translator\builds
\2009-04-30_20-58-15\archive\pl.koziolekweb.propertiestranslator\translator\0.0.1-SNAPSHOT\pom.xml
[INFO] ------------------------------------------------------------------------
[ERROR] FATAL ERROR
[INFO] ------------------------------------------------------------------------
[INFO] null
[INFO] ------------------------------------------------------------------------
[INFO] Trace
java.lang.NullPointerException
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.
calculateConcreteConfiguration(DefaultLifecycleExecutor.java:747)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.
executeGoals(DefaultLifecycleExecutor.java:578)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.
executeGoalWithLifecycle(DefaultLifecycleExecutor.java:540)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.
forkProjectLifecycle(DefaultLifecycleExecutor.java:1168)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.
forkLifecycle(DefaultLifecycleExecutor.java:1009)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.
executeGoals(DefaultLifecycleExecutor.java:647)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.
executeGoalWithLifecycle(DefaultLifecycleExecutor.java:540)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.
executeGoal(DefaultLifecycleExecutor.java:519)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.
executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:371)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.
executeTaskSegments(DefaultLifecycleExecutor.java:332)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:181)
at org.apache.maven.lifecycle.LifecycleExecutorInterceptor.
execute(LifecycleExecutorInterceptor.java:65)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:356)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:137)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:356)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
at hudson.maven.agent.Main.launch(Main.java:158)
at hudson.maven.MavenBuilder.call(MavenBuilder.java:162)
at hudson.maven.MavenModuleSetBuild$Builder.call(MavenModuleSetBuild.java:579)
at hudson.maven.MavenModuleSetBuild$Builder.call(MavenModuleSetBuild.java:525)
at hudson.remoting.UserRequest.perform(UserRequest.java:97)
at hudson.remoting.UserRequest.perform(UserRequest.java:46)
at hudson.remoting.Request$2.run(Request.java:236)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
Obejście to instalacja Mavena w wersji 2.0.10 i podpięcie go pod Hudsona. Generalnie śmiga, ale jednak jest to tylko workaround, a nie rozwiązanie wrzoda.
Kod jest dostępny na licencji MIT. Jednak niektóre rozwiązania mogą być objęte inną licencją. W takim przypadku jest, to zaznaczone. Artykuły są dostępne na licencji CC-BY.
Jeżeli spodobał ci się ten wpis, to podziel się nim z innymi lub wesprzyj autora.