On 30/09/2009, at 10:48 PM, Mark Hobson wrote:
Hi Brett,
Thanks for the response, answers inline:
2009/9/30 Brett Porter <[email protected]>:
On 29/09/2009, at 2:16 AM, Mark Hobson wrote:
1) the full SCM checkout of the main project
you are calling from within that, or want to do a checkout?
Yep, the main project is the one where we're executing the assembly
plugin within. So essentially this part is like the predefined
'project' descriptor:
http://maven.apache.org/plugins/maven-assembly-plugin/descriptor-refs.html#project
2) full SCM checkouts of all dependencies that match a
groupId:artifactId pattern (i.e. internal projects)
are these released dependencies or in development snapshots?
These are released dependencies. They need to be SCM checkouts and
not source artifacts since they need to be buildable, i.e. contain the
POM and any other necessary build resources.
You can build and release source bundles with all of that too :)
3) a local repository containing the binaries for the unmatched
dependencies (i.e. third-party projects)
this can already be done with the assembly plugin.
Got that bit working :)
The aim to end up with a complete offline standalone buildable archive
like this:
bundle.zip
+- build.sh (shell script to invoke Maven build)
+- build.bat (batch file version of above)
+- maven (Maven distributable)
+- jre (Java JRE for Maven)
+- settings.xml (settings to point Maven to local repository)
+- repository (Maven repository of third party artifacts and Maven
dependencies)
+- projects (SCM checkouts of internal projects)
+- project A/
| +- pom.xml
| +- src/
| +- ...
+- ...
The build would then be invoked by applying the reactor on the
projects dir and pointing at the local repository.
After a brief initial investigation, it looks like I need the
following:
- New feature: Add 'project' type to assembly plugin dependencySet
(addresses point 2 above)
- Bug: POM artifacts cannot be excluded from repositories
- Bug: Add 'useTransitiveDependencies' flag to assembly plugin
repository (currently cannot keep excluded artifact's transitive
dependencies)
I'll investigate these points in more depth once I need to do the
work. I was mainly trying to gather whether it was appropriate to add
this functionality to the assembly plugin. How did you see the POM
and SCM plugins coming into play here?
They were for doing the checkouts into a space the assembly plugin
could pick it up and for modifying the <modules> element to include
them in a build. You could put them in by hand in a profile though
that is just enabled by your scripts.
Though if they are releases, I'd find going with source bundles from
the repository easier than using the SCM.
- Brett
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]