It's all about the answers!

Ask a question

Maven SCM Plugin for RTC


0
4
David Lafreniere (4.8k7) | asked Jul 20 '10, 3:41 p.m.
FORUM MODERATOR / JAZZ DEVELOPER
edited Oct 06 '16, 10:24 a.m.
Please use this forum topic to discuss the ongoing development of the Maven SCM Plugin for RTC.

I would especially like to know how users intend to use the Maven SCM Plugin and especially the Maven Release plugin in the context of RTC.

What would really help is if you could provide a short description of what you feel each scm goal should do. (What would help even more if you could provide a sample Jazz SCM CLI line on exactly what you feel should be done).

Often difficulty occurs because we are bound to the Maven SCM Plugin framework, and the level of information supplied to us for each goal may be too little or to much in order to easily map it 1:1 to an RTC use case scenario. RTC SCM is great at being flexible for team (or even personal) use, but it also has many "things" that other traditional SCM systems do not.

Questions of discussion could be:

1. Should the checkin goal automatically create and "complete" a change set with the given message/comment every time the checkin goal is executed?. Should it also "deliver" this change set with every checkin goal? or should it just check in files to the existing change set?

2. The checkout goal allows an optional passed in ScmVersion Maven object. For example, the release-plugin calls this checkout goal in the release:perform goal and used this ScmVersion object to represent a "snapshot" which was created in the release:prepare goal. However Jazz RTC does not allow you to checkout (i.e. "load") a particular snapshot. Can we come up with an agreed upon action for this scenario?
2a. One option would be to temporarily create another repository workspace which is based on the given snapshot. This would allow the user to checkout the files properly. However one problem is that these SCM goals act against the workspace defined in the SCM URL (in the pom.xml), thus future goals such as (status or checkin) would be against the original repository workspace, and not the one we checked out of...

3. The "project structure" of Maven projects and RTC/Eclipse projects are different. Maven has the concept of "parent projects" in which entire child projects exist below a parent project, whereas in Eclipse/RTC each project generally exists at the same root level. At the surface this doesn't appear to be a problem, but some Maven users may not be able to do what they want with the Jazz SCM provider. In particular, Jazz SCM does not allow checking out a project underneath another checked out project (i.e. can't have a sandbox in a sandbox).
3a. Ex: During an initial test run of release:perform (after performing after a release:prepare), I saw that the supplied checkout directory was "<releaseProject>\target\checkout" (Which Jazz Scm cannot do).

Please see the following Wiki document for additional information.
https://jazz.net/wiki/bin/view/Main/BuildFAQ#Does_Jazz_Team_Build_support_Mav

104 answers



permanent link
Darrell King (6) | answered Aug 15 '10, 8:21 a.m.
Thanks for developing this plugin it's really useful. I tried it on our build and after following the instructions on the wiki and making a few tweaks I got it working.

It's not clear from the wiki but plugin does work with RTC 2.

I had to add a version to the maven-scm-plugin, otherwise Maven wanted to run 1.5-SNAPSHOT

<plugin>

<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-scm-plugin</artifactId>
<version>1.3</version>


I then got an error when tagging:

[INFO] ------------------------------------------------------------------------

[ERROR] FATAL ERROR
[INFO] ------------------------------------------------------------------------
[INFO] org/apache/maven/scm/ScmTagParameters
org.apache.maven.scm.ScmTagParameters
[INFO] ------------------------------------------------------------------------
[INFO] Trace
java.lang.NoClassDefFoundError: org/apache/maven/scm/ScmTagParameters
at org.apache.maven.scm.provider.jazz.command.tag.JazzTagCommand.execute
TagCommand(JazzTagCommand.java:28)


Following these instructions at http://code-monkey-nuts.blogspot.com/2009/09/maven-release-plugin-with-git.html for the Git plugin I added a dependency on maven-scm-api version 1.3 to the maven-scm-plugin and maven-release-plugin configuration

		<dependency>

<groupId>org.apache.maven.scm</groupId>
<artifactId>maven-scm-api</artifactId>
<version>1.3</version>
</dependency>

The final plugin configuration:

<plugin>

<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-scm-plugin</artifactId>
<version>1.3</version>
<dependencies>
<dependency>
<groupId>org.apache.maven.scm</groupId>
<artifactId>maven-scm-provider-jazz</artifactId>
<version>1.3</version>
</dependency>
<dependency>
<groupId>org.apache.maven.scm</groupId>
<artifactId>maven-scm-api</artifactId>
<version>1.3</version>
</dependency>
</dependencies>
</plugin>

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<dependencies>
<dependency>
<groupId>org.apache.maven.scm</groupId>
<artifactId>maven-scm-provider-jazz</artifactId>
<version>1.3</version>
</dependency>
<dependency>
<groupId>org.apache.maven.scm</groupId>
<artifactId>maven-scm-api</artifactId>
<version>1.3</version>
</dependency>
</dependencies>
</plugin>

permanent link
Nick Edgar (6.5k711) | answered Jul 27 '10, 12:32 p.m.
JAZZ DEVELOPER
The doc on using the Maven SCM Plugin has moved to:
https://jazz.net/wiki/bin/view/Main/UsingMavenScmPlugin

The FAQ entry now just links to that topic.

The zip containing the additions to make to your local Maven repository is available in the maven subdirectory of the Build System Toolkit for Windows and Linux (zip install) for M7a:
https://jazz.net/downloads/rational-team-concert/milestones/3.0M7a?p=allDownloads

permanent link
Chris Graham (367814) | answered May 10 '15, 11:54 p.m.
The code necessary to support workItem (scm associate changeset) has been delivered to the apache SCM git repo and the release plugin SVN repo.

I have additional changes and updates and testing to make, but the basis of the code is now there, for those of you who can not wait for a formal release of the maven-release and maven-scm code. :)

-Chris


permanent link
Chris Graham (367814) | answered Apr 29 '12, 10:27 p.m.
The core Maven team have voted, and the 1.7 SCM release has been accepted. This is the version that contains my Jazz provider.

It's documentation is now available at:

http://maven.apache.org/scm/maven-scm-providers/maven-scm-provider-jazz/index.html

It should be being staged now, and should be in central in a couple of days, if not already.

The next step, is to get the maven release plugin released. It should be 2.3. There are discussions now to get that underway soon.

-Chris

The Maven SCM Provider Jazz module has been finished.

It's issue:

http://jira.codehaus.org/browse/SCM-670

was created, and

http://jira.codehaus.org/browse/MRELEASE-747

was updated to reflect the correct dependencies.

The patch, and it's images necessary for the site generation are all attached to the SCM-670 issue.

You are now able to download the patch and build it yourself.

As there are several other issues (unrelated to the Jazz ones) that are also going to be rolled into the release of SCM 1.7,
and that may be happening in the next week or so.

Feedback, comments welcome.
If you have issues, then please raise them Jira:

http://jira.codehaus.org/browse/SCM

Enjoy!

-Chris

Your answer


Register or to post your answer.


Dashboards and work items are no longer publicly available, so some links may be invalid. We now provide similar information through other means. Learn more here.