Hi Emmanuel,
after SCM-287 has been applied, I still see the following problem with
the
Maven/Continuum and ClearCase integration.
The ClearCase implementation of the checkout command for ClearCase
creates a
ClearCase snapshot view. Such a snaphsot view is very similiar to a
CVS or
Subversion checkout directory, but one major difference is the directory
structure. To make it clear, consider the following example:
Consider you have checked out the project MY_VOB/my/project to
d:\continuum-work\167:
- When working with CVS or SVN, you would find the POM file at
d:\continuum-work\167\pom.xml.
- With ClearCase, the location would be
d:\continuum-work\167\MY_VOB\my\project\pom.xml. This means that the
directory structure within the configuration management system, is
repeated
in every view (checkout directory). AFAIK it is not possible to change
this
ClearCase behaviour.
This leads to the following problems:
- After adding a project to Continuum, the build cannot be performed
because
the POM file cannot be found. The build definition has to be changed
manually, so that the POM file location is e.g.
"MY_VOB/my/project/pom.xml"
instead of "pom.xml".
- The maven-release-manager performs a clean checkout from a tag to the
target/checkout directory, and then runs the build in that checkout
directory. Same problem here, it would have to be run in e.g.
"target/checkout/MY_VOB/my/project" instead of just "target/checkout".
One solution could be to add an attribute to CheckOutScmResult that
contains
the path of the project directory relative to the checkout directory. By
default, it would be "" or "./" (could be a String or java.io.File or
whatever fits best). But the ClearCaseCheckOutCommand could set e.g.
"MY_VOB/my/project" instead. (Notice that this would only be possible
with
auto-generated config specs as introduced by SCM-287).
Continuum and maven-release-manager (as well as other users of
ScmProvider.checkout) should pay attention to this relative path
attribute
accordingly.
Let me know what you think. I can file a JIRA issue if you want.