maven-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Aliaksei Lahachou <aliaksei.lahac...@gmail.com>
Subject Re: "The Maven way" for delivery pipelines
Date Mon, 08 Jul 2013 17:55:33 GMT
Hi,

also take a look on Arquillian, it can manage containers as well.

Regards,
htfv (Aliaksei Lahachou)


On Fri, Jul 5, 2013 at 10: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
>
>

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