解決Jenkins運行ant腳本編譯項目報錯Unable to load annotation processing manager org.eclipse.jdt.internal.compiler.apt.dispatch.BatchAnnotationProcessorManager from classpath.


在進行Jenkins+ant+tomcat編譯項目自動化的時候,運行過程中會出現報錯:

Unable to load annotation processing manager org.eclipse.jdt.internal.compiler.apt.dispatch.BatchAnnotationProcessorManager from classpath.

 



原因是用ant編譯時通過eclipsejdt去編譯的,是依賴eclipse或myeclipse里面的插件的,所以需要把eclipse或myeclipse的插件里面的某些jar文件放到ant安裝目錄的lib文件夾內
在eclipse安裝目錄搜索jdt,找到
org.eclipse.jdt.annotation_1.1.100.v20160418-1457.jar (注意:下滑杠后面的部分因安裝版本不一樣是不一樣的,只要找下滑杠前面部分跟我寫出來的一致就行)
org.eclipse.jdt.annotation_2.1.100.v20170511-1408.jar
org.eclipse.jdt.apt.core_3.5.50.v20170920-0950.jar
org.eclipse.jdt.apt.ui_3.5.0.v20170505-1107.jar
org.eclipse.jdt.compiler.apt_1.3.60.v20171129-1553.jar
org.eclipse.jdt.compiler.tool_1.2.51.v20171122-1403.jar
org.eclipse.jdt.core_3.13.101.v20180215-0725.jar
org.eclipse.jdt.debug.ui_3.8.52.v20180104-1240.jar
下圖我紅色圈出來的可能沒有圈完全

 

復制完成如下圖

 

 復制完成之后再運行就ok了

下面附上我的ant腳本:

<?xml version="1.0" encoding="UTF-8"?>  
<project name="BPP_JAR_Deploy" default="pack" basedir=".">  
    <property environment="env" />  
    <property name="webapp.name" value="BPP_JAR_Deploy" />  
    <property name="catalina.home" value="D:\apache-tomcat-7.0.68" />  
    <property name="dist.dir" value="${basedir}/dist" />  
    <property name="ant.dir" value="C:\apache-ant-1.10.3" />  
    <property name="webRoot.dir" value="${basedir}/WebRoot" />  
    <property name="src.dir" value="${basedir}/src" />  
    <!--<property name="config.dir" value="${basedir}/config" />-->  
    <property name="lib.dir" value="${basedir}/lib" />  
    <property name="build.dir" value="${basedir}/build" />  
    <!-- 使用eclipse jdt進行編譯  -->  
    <property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter" />   
  
    <!-- 初始化classpath依賴包 -->  
    <path id="project.classpath">  
        <fileset dir="${lib.dir}">  
            <include name="*.jar" />  
        </fileset>  
        <!-- 添加tomcat類路徑 -->  
        <fileset dir="${catalina.home}/lib">  
            <include name="*.jar" />  
        </fileset>  
        <!-- ant lib包  -->  
        <fileset dir="${ant.dir}">  
            <include name="**/*.jar" />  
        </fileset>  
    </path>  
  
    <!-- get the source compile classpath in a printable form -->  
    <pathconvert pathsep="${line.separator}|   |-- "  
             property="echo.path.compile"  
             refid="project.classpath">  
    </pathconvert>  
      
    <!-- show classpath jars -->  
    <target name="print_classpath">  
        <echo message="|-- compile classpath"/>  
        <echo message="|   |"/>  
        <echo message="|   |-- ${echo.path.compile}"/>  
    </target>  
      
      
    <!-- 刪除舊目錄 -->  
    <target name="clear" description="刪除舊文件">  
        <delete dir="${build.dir}" />  
        <delete dir="${dist.dir}" />  
        <delete file="${catalina.home}/webapps/${webapp.name}.war" />  
        <delete dir="${catalina.home}/webapps/${webapp.name}" />  
    </target>  
  
    <!-- 重新建目錄 -->  
    <target name="init" depends="clear" description="初始化目錄">  
        <mkdir dir="${build.dir}/classes" />  
        <mkdir dir="${dist.dir}" />  
    </target>  
  
    <!-- 編譯java文件 -->  
    <target name="compile" depends="init" description="編譯java文件">  
        <echo message="begin compile..." />  
        <javac srcdir="${src.dir}" destdir="${build.dir}/classes"   
            includeantruntime="false" nowarn="false"   
            source="1.6" target="1.6" deprecation="true" debug="true"    
            encoding="UTF-8" classpathref="project.classpath"   
            >  
            <compilerarg line="-Xlint:unchecked" />   
        </javac>  
        <copy todir="${build.dir}">  
            <fileset dir="${src.dir}">  
                <include name="**/*.xml" />  
                <include name="**/*.properties" />  
                <include name="**/*.sql" />  
            </fileset>  
        </copy>  
        <echo message="end compile..." />  
    </target>  
  
    <!-- 編譯后打jar包 -->  
       
        <target name="pack" depends="compile">   
            <jar jarfile="${build.dir}/${webapp.name}.jar">   
                <fileset dir="${build.dir}/classes">   
                    <include name="**/*.class"/>   
                </fileset>   
            </jar>   
        </target>    
</project>

 

 
       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM