 ------
 Using Perforce
 ------
 Dennis Lundberg
 ------
 2007-07-19
 ------

 ~~ 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.


Using Perforce

  The maven-changelog-plugin uses {{{http://maven.apache.org/scm/}Maven SCM}}
  as an underlying layer, when accessing your SCM system. When Maven SCM is
  working with Perforce it needs a clientspec. This is provided by setting
  system properties that are then read by Maven SCM.

  Configuring this is done in the same way as for the maven-scm-plugin. So if
  you have a working configuration for maven-scm-plugin, you can just copy
  those lines over to your maven-changelog-plugin configuration. The following
  configuration shows an example of what this can look like.

+-----+
<project>
  ...
  <reporting>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-changelog-plugin</artifactId>
        <version>2.1</version>
        <configuration>
          <systemProperties>
            <property>
              <name>maven.scm.perforce.clientspec.name</name>
              <value>your.perforce.clientspec.name</value>
            </property>
          </systemProperties>
        </configuration>
      </plugin>
    </plugins>
  </reporting>
  ...
</project>
+-----+
