The maven-changelog-plugin uses 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.3</version> <configuration> <systemProperties> <property> <name>maven.scm.perforce.clientspec.name</name> <value>your.perforce.clientspec.name</value> </property> </systemProperties> </configuration> </plugin> </plugins> </reporting> ... </project>