 |
Hudson 1.122 and build/test matrix
Posted by kohsuke on July 27, 2007 at 03:04 PM | Comments (1)
I just released a new version of Hudson (1.122.) Along with the usual bug fixes and improvements, this version includes one note-worthy feature, which is what I call "matrix project."
Here's how this new job type is typically useful. Let's say you are developing the JAX-WS RI. This project needs its tests to run on many different environments. We need to test on Solaris, Linux, and Windows. We need to test with Glassfish, Tomcat, and Jetty. We need to test with JDK5 and JDK6. We need to test with two kinds of different StAX implementations. If you test all possible combinations, you have 36 different combinations. With free-style software project, you need to set up 36 different jobs that are almost identical to each other. This is clearly unmaintainable.
Matrix project is designed to handle situations like this. It lets you set up a single configuration with user-defined parameters, and when you tell Hudson to build it, it will build all the possible combinations of parameters and aggregate results for easier comprehension.
In addition to testing, this job type should be also useful for building a software project for multiple target platforms. For example, products like Glassfish need to be built on different target platforms to produce native binaries.
This is still a preliminary feature, so do expect some unpolished UIs/features and rough edges, but I do plan on improving this area, and your feedback would be always welcome.
Bookmark blog post: del.icio.us Digg DZone Furl Reddit
Comments
Comments are listed in date ascending order (oldest first)
-
hi! I received an error "unrecognized parameter -Xboolean-getter" when I'm running my pom.xml.
here is the trace:
[INFO] XJC compile
[INFO] build id of XJC is 2.0.2-b01-fcs
[INFO] failure in the XJC task. Use the Ant -verbose switch for more details
[INFO] ------------------------------------------------------------------------
[ERROR] FATAL ERROR
[INFO] ------------------------------------------------------------------------
[INFO] unrecognized parameter -Xboolean-getter
[INFO] ------------------------------------------------------------------------
[INFO] Trace
unrecognized parameter -Xboolean-getter
at com.sun.tools.xjc.XJC2Task._doXJC(XJC2Task.java:409)
at com.sun.tools.xjc.XJC2Task.doXJC(XJC2Task.java:397)
at com.sun.tools.xjc.XJC2Task.execute(XJC2Task.java:332)
at com.sun.tools.xjc.maven2.XJCMojo.execute(XJCMojo.java:310)
at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:420)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:539)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.jav
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:459)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:278
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:143)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:330)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:123)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:272)
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 org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
Caused by: com.sun.tools.xjc.BadCommandLineException: unrecognized parameter -Xboolean-getter
at com.sun.tools.xjc.Options.parseArguments(Options.java:664)
at com.sun.tools.xjc.XJC2Task._doXJC(XJC2Task.java:407)
... 21 more
--- Nested Exception ---
com.sun.tools.xjc.BadCommandLineException: unrecognized parameter -Xboolean-getter
at com.sun.tools.xjc.Options.parseArguments(Options.java:664)
at com.sun.tools.xjc.XJC2Task._doXJC(XJC2Task.java:407)
at com.sun.tools.xjc.XJC2Task.doXJC(XJC2Task.java:397)
at com.sun.tools.xjc.XJC2Task.execute(XJC2Task.java:332)
at com.sun.tools.xjc.maven2.XJCMojo.execute(XJCMojo.java:310)
at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:420)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:539)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.jav
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:459)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:278
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:143)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:330)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:123)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:272)
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 org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 17 seconds
[INFO] Finished at: Mon Aug 13 18:21:05 EEST 2007
[INFO] Final Memory: 10M/19M
[INFO] ------------------------------------------------------------------------
but when I ran "xjc -cp booleangetter-1.0.jar -Xboolean-getter sample.xsd", it's working.
here is an extract of my pom.xml:
plugin
groupId:com.sun.tools.xjc.maven2:groupId>
artifactId:maven-jaxb-plugin:artifactId
executions
execution
id:book:id
goals
goal:generate:goal
:goals
configuration>
${basedir}/src/main/resources/catalog.xml:catalog> -->
includeBindings
includeBinding:**/allDocuments.xjb:includeBinding
:includeBindings
includeSchemas
includeSchema:**/*.xsd:includeSchema
:includeSchemas
args:-Xboolean-getter:args
:configuration
:execution
:executions
configuration
schemaDirectory:src/main/resources:schemaDirectory
strict:true:strict
extension:true:extension
verbose:true:verbose
:configuration
:plugin
.....
dependency
groupId:jaxb2_commons:groupId
artifactId:booleangetter:artifactId
version:1.0:version
:dependency
my jar (booleangetter-1.0.jar) is located to the directory .m2\repository\jaxb2_commons\booleangetter\1.0
. I don't know that is wrong. Thank you.
Posted by: mhadjis on August 13, 2007 at 09:25 AM
|