L
Lee Theobald
Hi all,
I'm trying to get our company build process a little more automated and would appreciate some feedback on where to direct our attention. The current build process works as follows:
- Projects are normally web applications packaged in wars. We use Maven tomanage dependencies etc. & the code is stored in SVN.
- Within our pom.xml, we have a number of Maven profiles. There is normally a "shared" profile that contains the majority of the configuration for the application (put in place with the resources plugin) followed by a more environment specific profile (dev, staging, production etc.) containing additional information.
- When it comes to building for an environment, a developer will build a war file on his local machine using a machine command similar to "mvn -P shared,production clean package".
- This gives the developer a war file. They then SCP these up to the relevant server, extract to a Tomcat & restart that Tomcat.
This is working fine but there's a lot of room for improvement. Recently we've looked at using Jenkins for continuous integration but haven't got toofar with it.
So here are the points I'm wondering about:
1) Are Maven profiles the best way of storing this specific environment? The pom's are certainly getting bloated with a lot of configuration & this can be quite intimidating to a newbie. Any suggestions on alternatives
2) The whole devops movement seems to be something that could help me out here but I'm not too sure where to start. I've heard about a pipeline usingsomething along the lines of Maven --> Jenkins --> Puppet working well. With Jenkins handling the build & Puppet deploying. Does anyone have any experience with this?
Cheers for any input
Lee,
I'm trying to get our company build process a little more automated and would appreciate some feedback on where to direct our attention. The current build process works as follows:
- Projects are normally web applications packaged in wars. We use Maven tomanage dependencies etc. & the code is stored in SVN.
- Within our pom.xml, we have a number of Maven profiles. There is normally a "shared" profile that contains the majority of the configuration for the application (put in place with the resources plugin) followed by a more environment specific profile (dev, staging, production etc.) containing additional information.
- When it comes to building for an environment, a developer will build a war file on his local machine using a machine command similar to "mvn -P shared,production clean package".
- This gives the developer a war file. They then SCP these up to the relevant server, extract to a Tomcat & restart that Tomcat.
This is working fine but there's a lot of room for improvement. Recently we've looked at using Jenkins for continuous integration but haven't got toofar with it.
So here are the points I'm wondering about:
1) Are Maven profiles the best way of storing this specific environment? The pom's are certainly getting bloated with a lot of configuration & this can be quite intimidating to a newbie. Any suggestions on alternatives
2) The whole devops movement seems to be something that could help me out here but I'm not too sure where to start. I've heard about a pipeline usingsomething along the lines of Maven --> Jenkins --> Puppet working well. With Jenkins handling the build & Puppet deploying. Does anyone have any experience with this?
Cheers for any input
Lee,