====== [[http://hudson.dev.java.net/|Hudson]] ======
===== Links =====
* [[http://wiki.hudson-ci.org/display/HUDSON/Features+controlled+by+system+properties|Features controlled by system properties]]
Comparison:
* [[wp>Comparison of Continuous Integration Software]]
* [[http://confluence.public.thoughtworks.org/display/CC/CI+Feature+Matrix|CI Feature Matrix]]
* Local copy in {{ci_feature_matrix.pdf|PDF}} and in {{ci_feature_matrix.zip|ZIP}}
* {{continuous_integration_and_build_management_server_evaluation_guide.pdf|Continuous Integration and Build Management Server Evaluation Guide}}
===== Problems =====
=== ''sun.io.MalformedInputException'' in ''maven-resources-plugin'' ===
[INFO] --- maven-resources-plugin:2.4.3:resources (default-resources) @ service-extractor ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 4 resources
mojoFailed org.apache.maven.plugins:maven-resources-plugin:2.4.3(default-resources)
projectFailed org.mycompany.project:service-extractor:1.0.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 6.278s
[INFO] Finished at: Mon Nov 14 11:22:00 CET 2011
[INFO] Final Memory: 11M/27M
[INFO] ------------------------------------------------------------------------
mavenExecutionResult exceptions not empty
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:2.4.3:resources (default-resources) on project service-extractor: null
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:217)
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:84)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:319)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
at org.jvnet.hudson.maven3.launcher.Maven3Launcher.main(Maven3Launcher.java:79)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:618)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchStandard(Launcher.java:329)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:239)
at org.jvnet.hudson.maven3.agent.Maven3Main.launch(Maven3Main.java:145)
at hudson.maven.Maven3Builder.call(Maven3Builder.java:124)
at hudson.maven.Maven3Builder.call(Maven3Builder.java:71)
at hudson.remoting.UserRequest.perform(UserRequest.java:114)
at hudson.remoting.UserRequest.perform(UserRequest.java:48)
at hudson.remoting.Request$2.run(Request.java:270)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:432)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:284)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:678)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:703)
at java.lang.Thread.run(Thread.java:811)
Caused by: org.apache.maven.plugin.MojoExecutionException
at org.apache.maven.plugin.resources.ResourcesMojo.execute(ResourcesMojo.java:269)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
... 27 more
Caused by: org.apache.maven.shared.filtering.MavenFilteringException
at org.apache.maven.shared.filtering.DefaultMavenFileFilter.copyFile(DefaultMavenFileFilter.java:130)
at org.apache.maven.shared.filtering.DefaultMavenResourcesFiltering.filterResources(DefaultMavenResourcesFiltering.java:267)
at org.apache.maven.plugin.resources.ResourcesMojo.execute(ResourcesMojo.java:265)
... 29 more
Caused by: sun.io.MalformedInputException
at sun.io.ByteToCharUTF8.convert(ByteToCharUTF8.java:294)
at sun.nio.cs.StreamDecoder$ConverterSD.convertInto(StreamDecoder.java:316)
at sun.nio.cs.StreamDecoder$ConverterSD.implRead(StreamDecoder.java:366)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:252)
at java.io.InputStreamReader.read(InputStreamReader.java:212)
at java.io.BufferedReader.fill(BufferedReader.java:157)
at java.io.BufferedReader.read(BufferedReader.java:178)
at org.codehaus.plexus.interpolation.multi.MultiDelimiterInterpolatorFilterReader.read(MultiDelimiterInterpolatorFilterReader.java:274)
at org.codehaus.plexus.interpolation.multi.MultiDelimiterInterpolatorFilterReader.read(MultiDelimiterInterpolatorFilterReader.java:231)
at java.io.Reader.read(Reader.java:143)
at org.codehaus.plexus.util.IOUtil.copy(IOUtil.java:212)
at org.codehaus.plexus.util.IOUtil.copy(IOUtil.java:200)
at org.codehaus.plexus.util.FileUtils.copyFile(FileUtils.java:2222)
at org.codehaus.plexus.util.FileUtils.copyFile(FileUtils.java:2170)
at org.apache.maven.shared.filtering.DefaultMavenFileFilter.copyFile(DefaultMavenFileFilter.java:115)
... 31 more
channel stopped
Few posts ([[http://maven.40175.n5.nabble.com/Unable-to-build-maven-components-tt210630.html#a210632|1]], [[http://www.coderanch.com/t/494754/tools/Maven-Build-Error-Help#2228561|2]], [[http://yyhh.org/blog/2007/11/annoying-sun-io-malformedinputexception-when-moving-java-program-windows-linux|3]], [[codehaustracker>MNG-2187|MNG-2187]]) gave a hint that this is IBM JDK 1.5 specific issue.
Make sure that you do not enable filtering for binary resources:
src/main/resources
true
**/*.properties
src/main/resources
false
**/*.properties
=== ''java.io.FileNotFoundException: /boot.log (Permission denied)'' for ''maven-checkstyle-plugin'' ===
[INFO] --- maven-checkstyle-plugin:2.2:checkstyle (validate) @ service-public ---
[INFO] Velocity successfully started.
[INFO] There are 26 checkstyle errors.
log4j:ERROR setFile(null,false) call failed.
java.io.FileNotFoundException: /boot.log (Permission denied)
at java.io.FileOutputStream.(FileOutputStream.java:205)
at java.io.FileOutputStream.(FileOutputStream.java:128)
at org.apache.log4j.FileAppender.setFile(FileAppender.java:289)
at org.apache.log4j.FileAppender.activateOptions(FileAppender.java:163)
at org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:256)
at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:132)
at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:96)
at org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:654)
at org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:612)
at org.apache.log4j.PropertyConfigurator.configureRootCategory(PropertyConfigurator.java:509)
at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:415)
at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:441)
at org.apache.log4j.helpers.OptionConverter.selectAndConfigure(OptionConverter.java:470)
at org.apache.log4j.LogManager.(LogManager.java:122)
at java.lang.J9VMInternals.initializeImpl(Native Method)
at java.lang.J9VMInternals.initialize(J9VMInternals.java:196)
at org.apache.log4j.Logger.getLogger(Logger.java:104)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:618)
at org.apache.commons.logging.impl.Log4jProxy.(Log4jProxy.java:145)
at org.apache.commons.logging.impl.Log4JLogger.getLogger(Log4JLogger.java:288)
at org.apache.commons.logging.impl.Log4JLogger.(Log4JLogger.java:91)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:67)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:522)
at org.apache.commons.logging.impl.LogFactoryImpl.createLogFromClass(LogFactoryImpl.java:1040)
at org.apache.commons.logging.impl.LogFactoryImpl.discoverLogImplementation(LogFactoryImpl.java:838)
at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:601)
at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:333)
at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:664)
at org.apache.commons.digester.Digester.(Digester.java:304)
at hudson.plugins.checkstyle.parser.CheckStyleParser.parse(CheckStyleParser.java:49)
at hudson.plugins.analysis.core.AbstractAnnotationParser.parse(AbstractAnnotationParser.java:52)
at hudson.plugins.analysis.core.FilesParser.parseFile(FilesParser.java:197)
at hudson.plugins.analysis.core.FilesParser.parseFiles(FilesParser.java:176)
at hudson.plugins.analysis.core.FilesParser.invoke(FilesParser.java:126)
at hudson.plugins.analysis.core.FilesParser.invoke(FilesParser.java:29)
at hudson.FilePath.act(FilePath.java:757)
at hudson.FilePath.act(FilePath.java:739)
at hudson.plugins.checkstyle.CheckStyleReporter.perform(CheckStyleReporter.java:84)
at hudson.plugins.analysis.core.HealthAwareMavenReporter.postExecute(HealthAwareMavenReporter.java:202)
at hudson.maven.Maven3Builder$MavenExecutionListener.reccordMojoSucceeded(Maven3Builder.java:568)
at hudson.maven.Maven3Builder$MavenExecutionListener.mojoSucceeded(Maven3Builder.java:531)
at org.apache.maven.lifecycle.internal.DefaultExecutionEventCatapult.fire(DefaultExecutionEventCatapult.java:87)
at org.apache.maven.lifecycle.internal.DefaultExecutionEventCatapult.fire(DefaultExecutionEventCatapult.java:42)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:228)
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:84)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:319)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
at org.jvnet.hudson.maven3.launcher.Maven3Launcher.main(Maven3Launcher.java:79)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:618)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchStandard(Launcher.java:329)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:239)
at org.jvnet.hudson.maven3.agent.Maven3Main.launch(Maven3Main.java:145)
at hudson.maven.Maven3Builder.call(Maven3Builder.java:124)
at hudson.maven.Maven3Builder.call(Maven3Builder.java:71)
at hudson.remoting.UserRequest.perform(UserRequest.java:114)
at hudson.remoting.UserRequest.perform(UserRequest.java:48)
at hudson.remoting.Request$2.run(Request.java:270)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:432)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:284)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:678)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:703)
at java.lang.Thread.run(Thread.java:811)
This issue is addressed in [[http://issues.hudson-ci.org/browse/HUDSON-2048|HUDSON-2048]].
It looks like the chain that comes in JBoss's ''bin/run.jar:/log4j.properties'' which states:
This is happening because Hudson launches Maven in forked JVM so that JBoss configured log4j service (from ''server0/conf/jboss-log4j.xml'') is not visible. But log4j classes are available via JVM boot classpath (''lib/log4j-boot.jar'') so Checkstyle -> Digester -> commons-logging -> log4j tries to initialize again from ''log4j.properties'' in bootstrap ''bin/run.jar'':
...
log4j.appender.FILE.File=${jboss.server.log.dir}/boot.log
...
Unfortunately Hudson/Maven also filtered out all system variables so ''${jboss.server.log.dir}'' is empty...
Create the file ''/whatever/log4j.properties'' to override log4j configuration:
log4j.rootLogger=INFO, C
log4j.appender.C=org.apache.log4j.ConsoleAppender
log4j.appender.C.layout=org.apache.log4j.PatternLayout
log4j.appender.C.layout.ConversionPattern=%d{dd.MM HH:mm:ss} %-5p [%c] %m%n
and pass it as //Build -> Goals and options//: ''-Dlog4j.configuration=/whatever/log4j.properties''
=== Hudson boost the logfile with ''java.lang.IllegalArgumentException: The instance name component of a fully qualified service cannot be empty'' entries ===
2011-11-02 19:48:14,753 ERROR [STDERR] Nov 2, 2011 7:48:14 PM javax.jmdns.impl.tasks.RecordReaper run
SEVERE: RecordReaper(luu128d.local.).Error while reaping records: [Pointer@558685333 type: TYPE_PTR index 12, class: CLAS
S_IN index 1, name: _services._dns-sd._udp.local. ttl: '2246/4500' alias: '_sftp-ssh._tcp.local.']
java.lang.IllegalArgumentException: The instance name component of a fully qualified service cannot be empty.
at javax.jmdns.impl.ServiceInfoImpl.checkQualifiedNameMap(ServiceInfoImpl.java:356)
at javax.jmdns.impl.ServiceInfoImpl.(ServiceInfoImpl.java:197)
at javax.jmdns.impl.DNSRecord$Pointer.getServiceInfo(DNSRecord.java:540)
at javax.jmdns.impl.DNSRecord.getServiceInfo(DNSRecord.java:1051)
at javax.jmdns.impl.JmDNSImpl.renewServiceCollector(JmDNSImpl.java:1228)
at javax.jmdns.impl.tasks.RecordReaper.run(RecordReaper.java:80)
at java.util.TimerThread.mainLoop(Timer.java:512)
at java.util.TimerThread.run(Timer.java:462)
2011-11-02 19:48:14,758 ERROR [STDERR] Nov 2, 2011 7:48:14 PM javax.jmdns.impl.tasks.RecordReaper run
SEVERE: ---- Local Host -----
local host info[luu128d.local., eth1:10.14.1.85, DNS: luu128d.local. state: announced task: Renewer(luu128d.local.) state: announced]
---- Services -----
Service: hudson (2)._hudson._tcp.local.: [ServiceInfoImpl@2084880813 name: 'hudson (2)._hudson._tcp.local.' address: 'luu128d.internal.epo.org/10.14.1.85:80' status: 'DNS: luu128d.local. state: announced task: Renewer(luu128d.local.) state: announced', has data\020slave-port=356110url=http://luu128d.internal.epo.org:8111/hudson/\015version=1.398]
---- Types ----
Type: _ssh._tcp.local.: no subtypes
Type: _workstation._tcp.local.: no subtypes
Type: _hudson._tcp.local.: no subtypes
Type: _sftp-ssh._tcp.local.: no subtypes
Type: _jenkins._tcp.local.: no subtypes
---- cache ----
name 'luu128d.local.'
[IPv4Address@101155992 type: TYPE_A index 1, class: CLASS_IN index 1-unique, name: luu128d.local. ttl: '2802/3600' address: '10.14.1.85']
name 'luu142d.local.'
[IPv4Address@1469192767 type: TYPE_A index 1, class: CLASS_IN index 1, name: luu142d.local. ttl:'2800/3600' address: '10.14.1.120']
Hudson (v1.398) intensively logs the above messages to logfile, which by the end of the day is 100MB. The issue is addressed in [[http://issues.hudson-ci.org/browse/HUDSON-8647|HUDSON-8647]] and [[https://issues.jenkins-ci.org/browse/JENKINS-8647|JENKINS-8647]].
Disable DNS multicast: ''-Dhudson.DNSMultiCast.disabled=true'' (perhaps upgrading to latest Hudson 2.1.2 is better idea).
=== [[stackoverflowa>24573137/267197|How to change the date/tome format from 12H to 24H format?]] ===
In your browser settings change the preferred locale from English (''en'') to English Britain (''en-GB'').
=== [[https://wiki.jenkins.io/display/JENKINS/Tomcat|How to run Jenkins under Timcat on Debian?]] ===
* Disable Jenkins standalone: \\
''chkconfig jenkins off'' \\
and in ''/etc/default/jenkins'': \\
''RUN_STANDALONE=true''
* Force Tomcat to use UTF-8 for URL encoding in ''/etc/tomcat8/server.xml'': \\
''%%%%''
* Pass Jenkins home to Tomcat in ''/etc/default/tomcat8'': \\
''%%JAVA_OPTS="${JAVA_OPTS} -DJENKINS_HOME=/var/lib/jenkins"%%''
* Create Maven symlink: \\
''ln -s /var/lib/jenkins/.m2 /var/lib/tomcat8''
* Create Git symlink: \\
''ln -s /var/lib/jenkins/.gitconfig /var/lib/tomcat8''
* Create Jenkins app symlink: \\
''ln -s /usr/share/jenkins/jenkins.war /var/lib/tomcat8/webapps''
* Add "tomcat8" user to "jenkins" group: \\
''usermod -a -G jenkins tomcat8''
* Fix permissions: \\
''chmod g+w -R /var/lib/jenkins''
* Restart Tomcat (''/etc/init.d/tomcat restart'') and monitor log ''/var/log/tomcat8/catalina.out''
{{tag>hudson jenkins}}