在Opentaps 1.4版本我将AOP由原来的AspectJ替换为现在Aspectwerkz。结果我自己就首先在64bit的windows系统下遇到ant编译出错,现在把解决方法列在这里
将opentaps/opentaps-common/build-aspects.xml中的weave任务内容替换为以下内容(其实就是把原来的ant的替换jar内容任务分成两部来执行):
<!-- ================================================================== -->
<!-- Weave advice into target jars -->
<!-- ================================================================== -->
<target name="weave" depends="detect-dependencies" if="processRequired">
<echo message="[build] =========== Start Building Aspect (Weave) ============="/>
<java classname="org.codehaus.aspectwerkz.compiler.AspectWerkzC" fork="true">
<jvmarg value="-Daspectwerkz.definition.file=${aopConfig}"/>
<jvmarg value="-Daspectwerkz.transform.filter=no"/>
<!-- <jvmarg value="-Daspectwerkz.transform.verbose=true"/> -->
<!-- <jvmarg value="-Daspectwerkz.transform.details=true"/> -->
<arg value="-verify"/>
<classpath refid="local.class.path" />
<classpath>
<pathelement path="${build.dir}/classes/common"/>
</classpath>
<!-- below is the jars to post-process -->
<arg value="${ofbiz.dir}/framework/entity/build/lib/ofbiz-entity.jar"/>
</java>
<java classname="org.codehaus.aspectwerkz.compiler.AspectWerkzC" fork="true">
<jvmarg value="-Daspectwerkz.definition.file=${aopConfig}"/>
<jvmarg value="-Daspectwerkz.transform.filter=no"/>
<!-- <jvmarg value="-Daspectwerkz.transform.verbose=true"/> -->
<!-- <jvmarg value="-Daspectwerkz.transform.details=true"/> -->
<arg value="-verify"/>
<classpath refid="local.class.path" />
<classpath>
<pathelement path="${build.dir}/classes/common"/>
</classpath>
<!-- below is the jars to post-process, if these jar not effect each other you can put them in same pos, else please seperate them into another task -->
<arg value="${ofbiz.dir}/framework/common/build/lib/ofbiz-common.jar"/>
</java>
<java classname="org.codehaus.aspectwerkz.compiler.AspectWerkzC" fork="true">
<jvmarg value="-Daspectwerkz.definition.file=${aopConfig}"/>
<jvmarg value="-Daspectwerkz.transform.filter=no"/>
<!-- <jvmarg value="-Daspectwerkz.transform.verbose=true"/> -->
<!-- <jvmarg value="-Daspectwerkz.transform.details=true"/> -->
<arg value="-verify"/>
<classpath refid="local.class.path" />
<classpath>
<pathelement path="${build.dir}/classes/common"/>
</classpath>
<!-- below is the jars to post-process -->
<arg value="${ofbiz.dir}/applications/order/build/lib/ofbiz-order.jar"/>
</java>
<jar jarfile="${lib.dir}/${name}.jar" update="true" basedir="${build.dir}/classes/common" includes="org/opentaps/aspect/secas/**" />
<!-- put aop.xml into target jar META-INF dir -->
<mkdir dir="${build.dir}/classes/META-INF" />
<copy file="${aopConfig}" tofile="${build.dir}/classes/META-INF/aop.xml" overwrite="true"/>
<!-- create new jar with aop.xml, then copy it to orign location, using these for avoid unable rename error on windows 64bit system-->
<zip destfile="${lib.dir}/ofbiz-entity.jar">
<zipfileset src="${ofbiz.dir}/framework/entity/build/lib/ofbiz-entity.jar"/>
<fileset dir="${build.dir}/classes/">
<include name="META-INF/aop.xml"/>
</fileset>
</zip>
<delete file="${ofbiz.dir}/framework/entity/build/lib/ofbiz-entity.jar" failonerror="false"/>
<move file="${lib.dir}/ofbiz-entity.jar" tofile="${ofbiz.dir}/framework/entity/build/lib/ofbiz-entity.jar"/>
<zip destfile="${lib.dir}/ofbiz-common.jar">
<zipfileset src="${ofbiz.dir}/framework/common/build/lib/ofbiz-common.jar"/>
<fileset dir="${build.dir}/classes/">
<include name="META-INF/aop.xml"/>
</fileset>
</zip>
<delete file="${ofbiz.dir}/framework/common/build/lib/ofbiz-common.jar" failonerror="false"/>
<move file="${lib.dir}/ofbiz-common.jar" tofile="${ofbiz.dir}/framework/common/build/lib/ofbiz-common.jar"/>
<zip destfile="${lib.dir}/ofbiz-order.jar">
<zipfileset src="${ofbiz.dir}/applications/order/build/lib/ofbiz-order.jar"/>
<fileset dir="${build.dir}/classes/">
<include name="META-INF/aop.xml"/>
</fileset>
</zip>
<delete file="${ofbiz.dir}/applications/order/build/lib/ofbiz-order.jar" failonerror="false"/>
<move file="${lib.dir}/ofbiz-order.jar" tofile="${ofbiz.dir}/applications/order/build/lib/ofbiz-order.jar"/>
<echo message="[build] =========== Done Building Aspect (Weave) =============="/>
</target>
以上方法已经在opentaps wiki [
http://www.opentaps.org/docs/index.php/General_Installation_of_Opentaps#Build_Aspect_class_Errors] 中加上过了。