Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #20184
| From | Fredrik Jonson <fredrik@jonson.org> |
|---|---|
| Newsgroups | comp.lang.java.programmer |
| Subject | Re: Getting A Build Process In Place |
| Date | 2012-12-08 10:45 +0000 |
| Message-ID | <slrnkc66ir.56r.fredrik@biggles.jonson.org> (permalink) |
| References | <5e2d6688-c429-4551-956f-8e8108a339c5@googlegroups.com> |
In <5e2d6688-c429-4551-956f-8e8108a339c5@googlegroups.com> Lee Theobald wrote: > 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 to manage dependencies. I agree that using profiles in maven builds is rather verbose and not very simple to work with. I'd almost consider profiles a necessary evil that should only be considered as a feature of last resort. Have you considered using separate modules, all depending on or using the base project as a parent? I think this approach is easier, it is straight forward to understand that a separate module has different configuration files, compared to how hard it is to perceive how a combination of profiles affects a build. What I usually do is to have a base module that contains the source code and the development environment configuration. Then you have separate modules for the integration test environment and production environment, each with their set of configuration files that overrides the ones in the base module. If you want to you can set this up as a multi module project, ie parent that contains submodules development, integration, and production. Though multi-module projects have their own gotchas, so if you want to keep it simple, start by just make separate standard modules with dependencies. BTW, I hope you are aware that when you declare a dependency of type war, the war is unpacked, including web resources, in the dependent project. That means that your jsp-files can be maintained in the base module, they do not have to be copied or version managed separately in the dependent modules. https://maven.apache.org/plugins/maven-war-plugin/overlays.html Using Jenkins is indeed a good idea too. Though the purpose of using a continuous build system, to me at least, is orthogonal to the goal of having a transparent build configuration. Jenkins runs the slow and boring integration tests and reminds you that you forgot to add that new source file in your last commit before you pushed. It doesn't by it self make your build configuration more understandable. Maybe even the opposite? If you set up Jenkins to compile your rather complicated build targets, so that you seldom have to do it yourself, then you are confronted with that complexity less often and forget how it works. You might end up with a cargo cult based build configuration. -- Fredrik Jonson
Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Getting A Build Process In Place Lee Theobald <lee@ltheobald.co.uk> - 2012-12-07 02:06 -0800
Re: Getting A Build Process In Place Leif Roar Moldskred <leifm@dimnakorr.com> - 2012-12-07 04:36 -0600
Re: Getting A Build Process In Place Arne Vajhøj <arne@vajhoej.dk> - 2012-12-07 20:13 -0500
Re: Getting A Build Process In Place Leif Roar Moldskred <leifm@dimnakorr.com> - 2012-12-07 20:44 -0600
Re: Getting A Build Process In Place Roedy Green <see_website@mindprod.com.invalid> - 2012-12-08 00:51 -0800
Re: Getting A Build Process In Place Arne Vajhøj <arne@vajhoej.dk> - 2012-12-09 18:47 -0500
Re: Getting A Build Process In Place Fredrik Jonson <fredrik@jonson.org> - 2012-12-08 10:45 +0000
Re: Getting A Build Process In Place Lee Theobald <lee@ltheobald.co.uk> - 2013-01-24 01:45 -0800
Re: Getting A Build Process In Place Roedy Green <see_website@mindprod.com.invalid> - 2013-01-26 19:24 -0800
csiph-web