tags:

views:

33

answers:

1

Hello.

I have some doubt regarding our setup in our ci server. The maven command used to build applications is configured in bamboo as "mvn install deploy".

As of my understanding this would invoke all phases up to "install" and then invoke all phases again up to "deploy", which would mean and as I can see in our logs, that the applications are build twice (twice compile, twice test) etc.. Which also means that the applications takes almost twice as long to build as needed.

All that's needed is "mvn deploy" to correctly build the applications.

Is my understanding/observation correct?

+1  A: 

Yes all you have to do is look at the execution life cycle.

  • validate - validate the project is correct and all necessary information is available
  • compile - compile the source code of the project
  • test - test the compiled source code using a suitable unit testing framework. These tests should not require the code be packaged or deployed
  • package - take the compiled code and package it in its distributable format, such as a JAR.
  • integration-test - process and deploy the package if necessary into an environment where integration tests can be run
  • verify - run any checks to verify the package is valid and meets quality criteria
  • install - install the package into the local repository, for use as a dependency in other projects locally
  • deploy - done in an integration or release environment, copies the final package to the remote repository for sharing with other developers and projects.

Here you can see that install happens right before deploy. What is important to know that when you run deploy, maven will run all other phases and then said goal. So running install then deploy will run up to install twice then a single deploy.

John V.