I'm working on my first major M2 (v. 2.0.4) project in my spare cycles, and
my obfuscation step was working fine last week.  Now it's failing with a
"can't find ant task" error, which seems like a classpath/dependency issue.
I've tried everything I could think of, I'm hoping someone can point out my
problem.  It's possible I changed something by accident, but I can't see it.
Does anyone a problem with this setup?

Here's my code in the pom.xml:

<!-- Obfuscation -->
<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-antrun-plugin</artifactId>
  <executions>
    <execution>
      <id>obfuscate-classes</id>
      <phase>process-classes</phase>
      <configuration>
          <tasks>
          <echo>Obfuscating...</echo>
          <ant antfile="${basedir}/klassmaster.build.xml"
inheritRefs="true">
             <target name="obfuscate"/>
          </ant>
        </tasks>
      </configuration>
      <goals>
       <goal>run</goal>
      </goals>
    </execution>
  </executions>
  <dependencies>
    <dependency>
      <groupId>com.zelix</groupId>
      <artifactId>klassmaster</artifactId>
      <version>1.0</version>
      <scope>system</scope>
 
<systemPath>C:/build-sandbox/d2e-vision/d2e-vision-engine/klassmaster/ZKM.ja
r</systemPath>
    </dependency>
  </dependencies>
</plugin>


Notice that I'm using the systemPath setting for now.  I did have it working
this way without issues.

I have verified that my ZKM.jar is there, and it contains the Ant task
ZKMTask.class (there is no package prefix)

My klassmaster.build.xml looks like this:

<project basedir="${basedir}">

 <taskdef name="ZKM" classname="ZKMTask"/>
 <target name="obfuscate">

  <!-- ZKM Script System Variables -->
  <property name="CLASSES_DIR" value="${basedir}/target/classes"/>
  <property name="CLASSPATH" refid="maven.compile.classpath"/>
  <property name="obfuscation.output.dir"
value="${basedir}/target/obfuscated-classes/"/>

  <mkdir dir="${obfuscation.output.dir}"/>

  <!-- Attributes correspond to Zelix KlassMaster command line options.
scriptFileName
        is only mandatory attribute -->
  <ZKM scriptFileName="${basedir}/klassmaster/script.scr"
     logFileName="${basedir}/target/obfuscation/klassmaster-execution.log"
     isParseOnly="false"
     isVerbose="true"/>
 </target>
</project>


The error I get is from a ClassNotFoundException from the AntClassLoader
(taskdef class ZKMTask cannot be found):

<snip from the mvn -X execution.../>

Caused by: The following error occurred while executing this line:
C:\build-sandbox\d2e-vision\d2e-vision-engine\klassmaster.build.xml:3:
taskdef class ZKMTask cannot be found
        at
org.apache.tools.ant.ProjectHelper.addLocationToBuildException(ProjectHelper
.java:539)
        at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:336)
        at
org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
        at org.apache.tools.ant.Task.perform(Task.java:364)
        at org.apache.tools.ant.Target.execute(Target.java:341)
        at
org.apache.maven.plugin.antrun.AbstractAntMojo.executeTasks(AbstractAntMojo.
java:108)
        ... 19 more
Caused by:
C:\build-sandbox\d2e-vision\d2e-vision-engine\klassmaster.build.xml:3:
taskdef class ZKMTask cannot be found
        at
org.apache.tools.ant.taskdefs.Definer.addDefinition(Definer.java:483)
        at org.apache.tools.ant.taskdefs.Definer.execute(Definer.java:183)
        at
org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
        at org.apache.tools.ant.Task.perform(Task.java:364)
        at org.apache.tools.ant.Target.execute(Target.java:341)
        at
org.apache.tools.ant.helper.ProjectHelper2.parse(ProjectHelper2.java:142)
        at
org.apache.tools.ant.ProjectHelper.configureProject(ProjectHelper.java:91)
        at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:334)
        ... 23 more
Caused by: java.lang.ClassNotFoundException: ZKMTask
        at
org.apache.tools.ant.AntClassLoader.findClassInComponents(AntClassLoader.jav
a:1166)
        at
org.apache.tools.ant.AntClassLoader.findClass(AntClassLoader.java:1107)
        at
org.apache.tools.ant.AntClassLoader.loadClass(AntClassLoader.java:977)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:219)
        at
org.apache.tools.ant.taskdefs.Definer.addDefinition(Definer.java:457)
        ... 30 more     


Reply via email to