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 08:32:52 GMT
if you have one company pom...

and 17 projects to release....and those 17 projects each use a
snapshot version of the company pom..

you currently need to checkout all 17 poms, edit the parent pom to a
released version and check them in.  you have to do that using hte
maven-release-plugin and you have to do that for continuum release as
well.

if you have one company pom, and a project with 17 submodules (and
this subprojects have no snapshot versions that are not in those 17/18
modules being released) then you only need to update the one parent
project pom to resolve the company pom to a released version and the
release process will take care of resolving all internal snapshot
version to the (soon to be released) version.

does that help?

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


-- 
jesse mcconnell
jesse.mcconnell@gmail.com

Mime
View raw message