blob: b64b7af4dd159c91950b7edca68b9dcfef5a0dd3 [file] [log] [blame]
<!---
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
maven-scm-provider-jgit
===
This scm provider implementation allows the usage of git with the release and scm plugin without having to install a native git client.
This implementation can use both username and password, or public/private keys to authenticate the requests to a remote
repository like GitHub. At the moment, public/private keys are only supported for SSH access.
Configuration
---
Usage with the `maven-release-plugin`
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.3</version>
<configuration>
<providerImplementations>
<git>jgit</git>
</providerImplementations>
</configuration>
<dependencies>
<dependency>
<groupId>org.apache.maven.scm</groupId>
<artifactId>maven-scm-provider-jgit</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
</plugin>
Usage with the `maven-scm-plugin`
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-scm-plugin</artifactId>
<version>${project.version}</version>
<configuration>
<providerImplementations>
<git>jgit</git>
</providerImplementations>
</configuration>
<dependencies>
<dependency>
<groupId>org.apache.maven.scm</groupId>
<artifactId>maven-scm-provider-jgit</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
</plugin>
Public/private key configuration in settings.xml - for use with ssh URLs like ssh://git@github.com/apache/maven-scm
<servers>
<server>
<id>git@github.com</id>
<privateKey>path/to/private/key</privateKey>
<passphrase>private key passphrase</passphrase>
</server>
<server>
Examples
____
changelog
mvn org.apache.maven.plugins:maven-scm-plugin:${project.version}:changelog
release
mvn release:prepare release:perform -Dresume=false -Dusername=XXX -Dpassword=XXX
Committer / Author
____
The jgit provider per default uses the information of the "user" section in the .gitconfig. If you explicitly configure a user there, this user will be used as author and committer.
If you don't define a user in the .gitconfig, then the user passed as "username" with the maven execution is used. The email per default will be 'username'@hostname. If you don't like
the hostname to be used as the domain. you can configure a default domain in the .gitconfig as follows:
git config --global maven-scm.maildomain mycomp.com
You can also enforce the usage of the "username" for the author and committer (omit the default in the .gitconfig):
git config --global maven-scm.forceUsername true
Features
---
this is a brief list of the supported maven-scm-provider-jgit's integration status with regard to some core maven plugins
maven-scm-plugin
---
| goal | implemented?|
| ------------- |:-------------:|
| scm:list | yes |
| scm:tag | yes |
| scm:bootstrap | no |
| scm:export | no |
| scm:update | no |
| scm:status | yes |
| scm:edit | no |
| scm:changelog | yes |
| scm:add | yes |
| scm:unedit | no |
| scm:validate | yes |
| scm:branch | yes |
| scm:checkin | yes |
| scm:checkout | yes |
| scm:diff | yes |
| scm:blame | yes |
| scm:remoteinfo | yes |
maven-release-plugin
---
| goal | implemented?|
| ------------- |:-------------:|
| release:clean | yes |
| release:prepare | yes |
| release:rollback | no |
| release:perform | yes |
| release:stage | no |
| release:branch | yes |