continuum-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jesse McConnell" <jesse.mcconn...@gmail.com>
Subject Re: Maven2 release process in Continuum
Date Wed, 18 Jul 2007 03:19:19 GMT
at the moment I think you need to make sure the underlying project
that you are going to try and release is 'clean' for the release.
that means that all dependencies that you are going to release ave
been resolved into released and available artifacts.

the continuum release mechanism makes use of the same release
mechanism as the maven-release-plugin so if you interested in playing
around with it I am a fan of just using the maven-release-plugin
directly, personally.

in your example to release your project and the core and webapp
subprojects at once,  will basically need to release the company pom
initially and then edit the project pom by hand and set the company
parent pom to the released version.  Then check through your pom.xml's
of the project and the two subprojects to locate and resolve any
SNAPSHOT dependencies that are not the three you are immediately
releasing.

its really pretty straight forward once you get into the swing of it.

jesse

On 7/17/07, James Abley <james.abley@gmail.com> wrote:
> 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
>


-- 
jesse mcconnell
jesse.mcconnell@gmail.com

Mime
View raw message