continuum-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "James Abley" <james.ab...@gmail.com>
Subject Maven2 release process in Continuum
Date Tue, 17 Jul 2007 10:59:23 GMT
Hi,

We have a Continuum instance and would like to cut a release of a
product which uses a Maven2  as the build system. Currently, it takes
around a day to release a product, which feels like longer than it
should.

We were hoping that using Continuum would save a lot of time versus
the current release process, which involves mvn release:prepare
-D..... and mvn releaes:perform -D... for a lot of modules.

I haven't found much documentation about the release feature, so would
appreciate any pointers.

First time through, I just followed it to try to see how intuitive it was.

Release is only available at a Project Group level (unless the user
account that I am using is missing some roles?). I created and
selected a small project group, that only contains a parent module and
two sub-modules. The parent pom inherits from our general company-wide
POM (common profiles, repositories, scm, etc.) The two sub-module poms
both inherit from the parent pom, for dependency management
reasons.One sub-module depends on the other one. The dependency flow
is illustrated below

          Common Company POM
                         |
                        V
             Project Group POM
              |                         |
             V                        V
Core module POM        Web app module (depends on Core)


1) I clicked on Release from the project group page.
2) Select the prepare release option.
3) Submit the form.

org.apache.maven.shared.release.versions.VersionParseException: Unable
to parse the version string: "${project.parent.version}"
	at org.apache.maven.shared.release.versions.DefaultVersionInfo.<init>(DefaultVersionInfo.java:156)
	at org.apache.maven.continuum.web.action.ReleasePrepareAction.setProperties(ReleasePrepareAction.java:294)
	at org.apache.maven.continuum.web.action.ReleasePrepareAction.processProject(ReleasePrepareAction.java:273)
	at org.apache.maven.continuum.web.action.ReleasePrepareAction.processProject(ReleasePrepareAction.java:277)
	at org.apache.maven.continuum.web.action.ReleasePrepareAction.input(ReleasePrepareAction.java:119)
	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:585)
	at com.opensymphony.xwork.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:364)
	at com.opensymphony.xwork.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:216)
	at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)
	at com.opensymphony.xwork.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:88)
	at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
	at com.opensymphony.xwork.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:88)
	at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
	at org.apache.maven.continuum.web.interceptor.ForceContinuumConfigurationInterceptor.intercept(ForceContinuumConfigurationInterceptor.java:73)
	at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
	at org.codehaus.plexus.redback.xwork.interceptor.PolicyEnforcementInterceptor.intercept(PolicyEnforcementInterceptor.java:103)
	at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
	at org.codehaus.plexus.redback.xwork.interceptor.SecureActionInterceptor.intercept(SecureActionInterceptor.java:178)
	at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
	at org.codehaus.plexus.xwork.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:58)
	at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
	at com.opensymphony.xwork.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:88)
	at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
	at com.opensymphony.xwork.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:88)
	at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
	at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
	at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
	at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
	at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
	at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
	at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
	at com.opensymphony.webwork.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:171)
	at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
	at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
	at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
	at com.opensymphony.webwork.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:147)
	at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
	at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
	at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
	at com.opensymphony.xwork.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:151)
	at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
	at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
	at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
	at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
	at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
	at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
	at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
	at com.opensymphony.xwork.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:186)
	at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
	at org.codehaus.plexus.redback.xwork.interceptor.AutoLoginInterceptor.intercept(AutoLoginInterceptor.java:156)
	at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
	at org.codehaus.plexus.redback.xwork.interceptor.ForceAdminUserInterceptor.intercept(ForceAdminUserInterceptor.java:63)
	at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
	at org.codehaus.plexus.redback.xwork.interceptor.EnvironmentCheckInterceptor.intercept(EnvironmentCheckInterceptor.java:122)
	at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
	at com.opensymphony.xwork.DefaultActionProxy.execute(DefaultActionProxy.java:113)
	at com.opensymphony.webwork.dispatcher.DispatcherUtils.serviceAction(DispatcherUtils.java:225)
	at com.opensymphony.webwork.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:202)
	at org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
	at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118)
	at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52)
	at org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
	at com.opensymphony.webwork.dispatcher.ActionContextCleanUp.doFilter(ActionContextCleanUp.java:88)
	at org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
	at org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:471)
	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:568)
	at org.mortbay.http.HttpContext.handle(HttpContext.java:1530)
	at org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:633)
	at org.mortbay.http.HttpContext.handle(HttpContext.java:1482)
	at org.mortbay.http.HttpServer.service(HttpServer.java:909)
	at org.mortbay.http.HttpConnection.service(HttpConnection.java:816)
	at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:982)
	at org.mortbay.http.HttpConnection.handle(HttpConnection.java:833)
	at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:244)
	at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357)
	at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534)


The Web App module POM contains a reference to the Core module POM like this.

<dependency>
    <groupId>${pom.groupId}</groupId>
    <artifactId>sampleapp-core</artifactId>
    <version>${project.parent.version}</version>
</dependency>

So my questions are these:

1. Do I have something wrong with the POM setup / dependencies? It
feels like I would hav to checkout the POM and make it reference an
explicit version, which doesn't feel right.
2. Is anyone else using the release button that would care to share
their experiences?

Cheers,

James

Mime
View raw message