关于Ant自动化编包问题排查价格小思路

1、确定一下JDK环境变量是否正确

何为是否正确,也就是源码所需要的版本和环境变量所需要的版本是否一致

2、确定引入的中间版本是否正确

同JDK

3、是否使用了正确的编译器

何为使用了正确的编译器,正常情况下不需要指定编译器,使用环境变量配置的JDK的编译器即可,如果有报错类似,“常量字符串过长”的问题,可能就需要切换编译器了

4、引入的类库(jar),千万不要有重复的或者多了,可能会导致问题

何为重复,也就是两个jar有相同的方法等,恰好路径也相同,可能会导致编译失败哦

何为多了,很明显也就是引入的jar多余实际需要的,我也没弄明白为啥,我就遇到过,实际只需要weblogic库中的两个jar,当时我是引入的全部,就编包失败了

5、Ant脚本本身是否有语法问题

6、是否编译的程序过大,导致内存溢出,适当调整内存大小

请各位大神补充指导。

引出一个问题,希望又看到的解决一下

背景:有个程序比较特殊(就不说为啥特殊了),需要使用JDT编译器进行编译

现象:执行编译Target时,实际没有对java文件进行编译,直接报错了,也有很详细、明确的报错提示

[javac] Compiling 315 source files to D:\temp\fsg\compile\fsg\WEB-INF\classes
Class org.eclipse.jdt.core.JDTCompilerAdapter loaded from parent loader (parentFirst)
    [javac] Using JDT compiler
fileset: Setup scanner in dir C:\tomcat7\lib with patternSet{ includes: [**/*.jar] excludes: [] }
fileset: Setup scanner in dir D:fsg\WEB-INF\lib with patternSet{ includes: [**/*.jar] excludes: [] }
fileset: Setup scanner in dir D:\ant\lib with patternSet{ includes: [**/*.jar] excludes: [] }
fileset: Setup scanner in dir D:\lib with patternSet{ includes: [**/*.jar] excludes: [] }
    [javac] Compilation arguments:
    [javac] '-noExit'
    [javac] '-classpath'
    [javac] '-d'
    [javac] 'D:\fsg\compile\fsg\WEB-INF\classes'
    [javac] '-encoding'
    [javac] 'GBK'
    [javac] '-Xlint:deprecation'
    [javac] '-Xlint:unchecked'
    [javac] 
    [javac] The ' characters around the executable and arguments are
    [javac] not part of the command.
    [javac] Files to be compiled:
    [javac]     D:\fsg\src\com\Checker.java
    [javac]     D:\fsg\src\com\ServiceCheck.java
    .......

BUILD FAILED
D:\build.xml:1413: Compile failed; see the compiler error output for details.
    at org.apache.tools.ant.taskdefs.Javac.compile(Javac.java:1150)
    at org.apache.tools.ant.taskdefs.Javac.execute(Javac.java:912)
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
    at sun.reflect.GeneratedMethodAccessor76.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

除以上信息,无更明确的提示了

build.xml:1413 脚本如下   

 <javac srcdir="${src.dir}" destdir="${java.classes.dest.dir}" includeAntRuntime="no" source="1.6" target="1.6"
            debug="true"  encoding="GBK" compiler="org.eclipse.jdt.core.JDTCompilerAdapter">
            <compilerarg value="-Xlint:deprecation"/>
            <compilerarg value="-Xlint:unchecked"/>
            <classpath refid="tomcat.java.compile.classpath" />
            <classpath refid="svn.classpath" />
        </javac>
        <echo message="编译java文件完成"></echo>
请留言,写下你的解决方案,老铁们、码农们!!!

 

上一篇:夺命雷公狗—JAVA---004---诞生自己的第一个java程序


下一篇:Day006 命令行传参