読者です 読者をやめる 読者になる 読者になる

プログラマでありたい

おっさんになっても、プログラマでありつづけたい

Hudsonでサイトレポートでエラー

構成管理

 Hudsonに新規のプロジェクトの設定をしていてハマりました。下記のようなpom.xmlがありまして、mvn siteをローカルで実行すると成功します。これをHudsonに設定して、mavenへの引数をsiteにするとエラー。surefire-report:reportのフェーズで落ちているようです。オプションをsurefire-report:reportにすると、やっぱり落ちます。
 なんじゃろと悩んでいたのですが、登録したプロジェクトにまだ一件もユニットテストが登録されていないのが原因のようです。確かにNullだわなぁと思うのですが、手動mvnが成功していたので問題解決まで長引きました。未だに何となく腑に落ちないのですが。。。

<reporting>
	<plugins>
		<plugin>
			<artifactId>maven-javadoc-plugin</artifactId>
			<configuration>
				<source>UTF-8</source>
				<encoding>UTF-8</encoding>
				<docencoding>UTF-8</docencoding>
				<charset>UTF-8</charset>
				<links>
					<link>http://java.sun.com/javase/ja/6/docs/ja/api/</link>
					<link>http://java.sun.com/javaee/5/docs/api/</link>
					<link>http://s2container.seasar.org/2.4/s2-framework/ja/apidocs/</link>
					<link>http://s2container.seasar.org/2.4/s2-extension/ja/apidocs/</link>
					<link>http://s2container.seasar.org/2.4/s2-tiger/ja/apidocs/</link>
					<link>http://commons.apache.org/collections/apidocs/</link>
					<link>http://commons.apache.org/lang/apidocs/</link>
				</links>
			</configuration>
		</plugin>
		<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-surefire-report-plugin</artifactId>
		</plugin>
	</plugins>
</reporting>
[INFO] ------------------------------------------------------------------------
[INFO] Building sample-module
[INFO]    task-segment: [surefire-report:report]
[INFO] ------------------------------------------------------------------------
[INFO] Preparing surefire-report:report
[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:627)
	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal(DefaultLifecycleExecutor.java:553)
	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:523)
	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:577)
	at hudson.maven.MavenModuleSetBuild$Builder.call(MavenModuleSetBuild.java:523)
	at hudson.remoting.UserRequest.perform(UserRequest.java:92)
	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)
[INFO] ------------------------------------------------------------------------