I'm struggling to work out the best way to get my maven projects and continuous integration to play nicely together.
Here's some background: Our build takes approximately 8 minutes to complete. To help keep the build time down the developers build doesn't do things like: * create source jars * create javadoc jars * run the integration test suite These extra tasks are all done when we release our software, or the integration tests suite can also be invoked via profiles. What I'd like to do is make sure that our continuous integration environment does these extra tasks. Ideally I'd like to define this once in our corporate parent pom and have it inherited. But profiles don't work this way (http://maven.apache.org/guides/introduction/introduction-to-profiles.html) It looks like the best I can do is to have a per-project profile (which I duplicate across all projects) at the root pom of the project to enable these extra tasks. I've also looked at the way maven development process enforces some common tasks during the release process. e.g. in org.apache:apache:7 pom uses <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-release-plugin</artifactId> <version>2.0-beta-9</version> <configuration> <useReleaseProfile>false</useReleaseProfile> <goals>deploy</goals> <arguments>-Papache-release</arguments> </configuration> </plugin> and further down defines the profile <profile> <id>apache-release</id> I have no idea how this actually manages to get that profile to run since help:effective-pom doesn't list it as a valid profile. So my question is how are you doing continuous integration? --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
