continuum-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "James Abley" <james.ab...@gmail.com>
Subject Re: Maven2 release process in Continuum
Date Wed, 18 Jul 2007 07:54:04 GMT
On 18/07/07, Jesse McConnell <jesse.mcconnell@gmail.com> wrote:
> 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.

Continuum is pulling stuff from our SCM prior to building it; your
suggestion implies to me that I need to check out POMs, alter them to
build a release form and check them back in. Then Continuum can be
used to prepare and perform a release, after which I need to checkout
the POMs and change any reference versions that I altered to the new
SNAPSHOT versions.

Have I understood you correctly? It just feels more painful than it
ought to, when trying to release 17 top-level POMs. Surely other
people are doing this and can point out where I'm going wrong.

>
> 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.

Thanks for your response,

James

>
> 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