maven-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Russell Gold <r...@gold-family.us>
Subject Re: "The Maven way" for delivery pipelines
Date Fri, 05 Jul 2013 20:45:35 GMT
Hi Mirko,

Have you looked at the Cargo plugin?

http://cargo.codehaus.org/Functional+testing

- Russ

On Jul 5, 2013, at 4:29 PM, Mirko Friedenhagen <mfriedenhagen@gmail.com> wrote:

> Hello,
> 
> now after some trial and error with custom packaging and lifecycles I
> ask myself whether I should proceed or do something completely
> different.
> 
> What I want to achieve:
> - We have loads of web-applications (WARs with a homegrown
> configuration tooling)
> - Some are single module projects, some are multi-module.
> - All should be deployed to an adhoc tomcat instance after the WAR is
> built to see whether configurations are solid and to do some
> integrative tests.
> - Right now we invoke a shell-script which runs several maven goals
> (not phases) directly:
> mvn clean verify
> mvn internal:create-tomcat (special packaging with logback as logger etc.)
> mvn internal:start-tomcat
> mvn internal:deploy-war (this one will _modify_ the war's
> configuration on the fly before deployment)
> mvn webtest:test
> mvn internal:stop-tomcat
> 
> Now, shell scripts are not very portable and so I thought about two solutions:
> 
> Solution 1:
> Create a custom lifecycle called webtest
> - My first idea was to create a custom lifecycle[1] which will invoke
> some standard standard goals[2], so the complete vodoo could be done
> with:
> 
> mvn clean verify verify-webtest
> 
> - I tried this with a tiny IT project, where I configured failsafe to
> do special stuff during the phase webtest of lifecycle webtest.
> - However, now failsafe is invoked twice:
> --- snip ---
> [INFO] --- maven-failsafe-plugin:2.15:integration-test
> (default-integration-test-1) @ foss-jar-maven-plugin-test-foss-war ---
> [INFO] --- maven-failsafe-plugin:2.15:integration-test
> (webtest-integration-test) @ foss-jar-maven-plugin-test-foss-war ---
> --- snap ---
> 
> - As the tomcat plugins are invoked as well with the "wrong lifecycle"
> default, I guess this will not work out.
> 
> Solution 2:
> 
> Would be to create a special packaging webtest and have a module in a
> multi-module project, one creating the war and the webtest module
> picking up the war as dependency and do the vodoo (on demand).
> Then I could imagine having two jobs in Jenkins, one
> deploying/installing the WAR and another Jenkins-Job running the shell
> equivalent from above by only executing module webtest.
> 
> Now, I read a lot about Maven being a tool for *building  only*, but
> in some way I like Maven and developing plugins is quite easy, so I
> thought it might be nonetheless a good way.
> 
> What do you think, do I have a hammer and now everything looks like a
> nail to me?
> Or could I use one of the proposed solutions without abusing Maven to
> much? Or is invoking the shell script as we do now a much better
> solution?
> 
> 
> Regards and thank you very much for reading up to here!
> Mirko
> [1] https://github.com/mfriedenhagen/foss-jar-maven-plugin/blob/master/src/main/resources/META-INF/plexus/components.xml#L103
> [2] https://github.com/mfriedenhagen/foss-jar-maven-plugin/blob/master/src/main/resources/META-INF/plexus/components.xml#L77
> [3] https://github.com/mfriedenhagen/foss-jar-maven-plugin/blob/master/src/it/test-foss-war/pom.xml#L31
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
> 

-----------------
Come read my webnovel, Take a Lemon <http://www.takealemon.com>, 
and listen to the Misfile radio play <http://www.gold-family.us/audio/misfile.html>!





Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message