====== [[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}}