Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #20184

Re: Getting A Build Process In Place

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>

Show all headers | View raw


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 | NextPrevious in thread | Next in thread | Find similar | Unroll thread


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