In relation to my last post about maven and Perforce
this is a better solution that will work with both maven 1.0.x and 1.1.
The previous one doesn’t work under maven 1.1 because the bundled ant
version was updated to 1.6, that doesn’t include the optional perforce
tasks.
This time you’d need:
- oro and ant-apache-oro as a dependency in your project.xml.
<dependency>
<groupId>oro</groupId>
<artifactId>oro</artifactId>
<version>2.0.8</version>
<!-- you don't need the root classloader if
only running under maven 1.1 -->
<properties>
<classloader>root</classloader>
</properties>
</dependency>
<dependency>
<groupId>ant</groupId>
<artifactId>ant-apache-oro</artifactId>
<version>1.6.4</version>
</dependency>
Another option to avoid defining each one of the tasks is creating a properties file in the classpath and load it with
<ant:taskdef resource="com.whatever.PerforceTasks"
classpathref="maven.dependency.classpath"/>
And the contents of the properties file is
# Perforce tasks available
p4change=org.apache.tools.ant.taskdefs.optional.perforce.P4Change
p4delete=org.apache.tools.ant.taskdefs.optional.perforce.P4Delete
p4label=org.apache.tools.ant.taskdefs.optional.perforce.P4Label
p4labelsync=org.apache.tools.ant.taskdefs.optional.perforce.P4Labelsync
p4have=org.apache.tools.ant.taskdefs.optional.perforce.P4Have
p4sync=org.apache.tools.ant.taskdefs.optional.perforce.P4Sync
p4edit=org.apache.tools.ant.taskdefs.optional.perforce.P4Edit
p4integrate=org.apache.tools.ant.taskdefs.optional.perforce.P4Integrate
p4resolve=org.apache.tools.ant.taskdefs.optional.perforce.P4Resolve
p4submit=org.apache.tools.ant.taskdefs.optional.perforce.P4Submit
p4counter=org.apache.tools.ant.taskdefs.optional.perforce.P4Counter
p4revert=org.apache.tools.ant.taskdefs.optional.perforce.P4Revert
p4reopen=org.apache.tools.ant.taskdefs.optional.perforce.P4Reopen
p4fstat=org.apache.tools.ant.taskdefs.optional.perforce.P4Fstat
Note that you can’t use the properties file bundled with ant because it includes all optional tasks, wich would force you to include all ant-*.jar files in the classpath.
Like this:
Like Loading...