How to use CVS with the maven-release-plugin?
i'm having a hard time getting the maven-release-plugin to work with our CVS repository. Hope I'm missing something obvious, or is noone using CVS/pserver and Maven2/3 anymore ?
The first problem is the scm URL:
The maven CVS provider states that a开发者_如何学编程 valid scm URL looks like this:
scm:cvs<delimiter>pserver<delimiter>[username[<delimiter>password]@]servername[<delimiter>port]<delimiter>path_to_repository<delimiter>module_name
So, i'm trying
<scm>
<connection>scm:cvs:pserver:cvssserver:/home/cvs/repository/projecta:ejbprojectA</connection>
</scm>
which should be a valid cvs scm url. For the release-plugin i'll set the username inside a local settings.xml directly in the relase plugins configuration. The release plugin works ok with that, but this leads to an error building the maven site:
[INFO] Username isn't defined.
[INFO] ------------------------------------------------------------------------
[INFO] Trace
java.lang.IllegalArgumentException: Username isn't defined.
at org.apache.maven.scm.provider.cvslib.repository.CvsScmProviderRepository.getCvsRootForCvsPass(CvsScmProviderRepository.java:113)
This seems to be a three year old bug in the scm plugin: http://jira.codehaus.org/browse/SCM-350
Adding a username variable to satisfy the site plugin also does not work, as this would trigger another (4 year old) bug in the maven-release-plugin: http://jira.codehaus.org/browse/MRELEASE-128
If i use a fixed username i can get it somehow to work, but this is not really satisfactory.
The second problem are flat project structures, the maven release plugin seems unable to work with CVS on them, there seems to be some fixes for SVN, but these changes totally break flat cvs structures (main pom module beside project modules)
So, the biggest question is, is anyone else using the maven-release-plugin with cvs ? How is your setup ? How do you deal with these problems ? Do you use flat project structures at all (which are much more convinient to use in eclipse ...) ?
you have to put a dummy username in the url and it's gona work. an other option is to put the cvs configuration in the developer url, maybe it will work then.
I'm using the release plugin with CVS.
Here are my versions:
- cvs 1.12.13-MirDebian-9
- Apache Maven 2.2.1 (rdebian-8)
- Java version: 1.7.0_25
Here's my scm element:
<scm>
<connection>scm:cvs:ext:@cvshostname:/path/to/cvsroot/:projectname</connection>
</scm>
And I call both release:prepare
and release:perform
with -Dusername=username
:
mvn release:perform -Dusername=username
精彩评论