Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to deploy locally already installed artifact with Maven

Story

I know, that maven deploy command runs through the whole lifecycle. My problem, that it takes to much time in my case. Let me explain:

  • There is an application built up from a Server, and a single sourced Eclipse RAP&RCP client
  • The communication is defined by shared API projects which are built together with the Server, but also needed by the GUI projects
  • The GUI projects are built by Tycho, so its impossible to build both of them in one build (in one reactor, EDIT: since the P2 artifacts are different for RCP and RAP)
  • I build a release with a multi step Jenkins build. To make sure, that everything is fine I first make a clean install for Server and the GUI variations one by one, and then I deploy them, if nothing fails

Question

Building everything twice takes a lot of time. Is there anything like "please simply deploy all built artifacts as they are from my local repository to the POM defined repository with skipping the whole lifecycle"?

like image 233
Gábor Lipták Avatar asked Mar 07 '13 21:03

Gábor Lipták


2 Answers

If you have the artifact already by the previous build, you may consider the deploy:deploy-file by following the Guide to deploying 3rd party JARs to remote repository. I always use this goal to publish some stable artifact to the developer public remote repository for letting other team to test/use.

I hope this may help.

like image 155
Charlee Chitsuk Avatar answered Nov 08 '22 23:11

Charlee Chitsuk


I don't think that there is a pure Maven solution to this. The problem is that your deploy only build won't know which artifacts to deploy – AFAIK this information is only in the in-memory Maven model and not persisted to the target folder.

The problem can be solved with a Maven repository manager that supports staging, like the (commercial) Nexus Pro. Then, your build would deploy straight away into a staging repository, and only promote the artifacts to the (main) repository if everything succeeded.

like image 22
oberlies Avatar answered Nov 09 '22 00:11

oberlies