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 <[EMAIL PROTECTED]> wrote:
On 18/07/07, Jesse McConnell <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> 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 > [EMAIL PROTECTED] >
-- jesse mcconnell [EMAIL PROTECTED]