使用ant 的javac 运行时logback日志 pattern为 [null:-1] 的问题

来源:互联网 发布:nike淘宝店推荐 编辑:程序博客网 时间:2024/06/14 22:58
<project default="jar" name="da" basedir=".">    <!-- 工程目录结构          project              |-bin              |-src              |-lib              |-out              |-build.xml          -->    <!--<echoproperties></echoproperties>  使用这个可以看到所有的隐式变量,如java.home-->    <property name="lib.dir" value="lib" />    <property name="src.dir" value="src" />    <property name="classes.dir" value="build" />     <property name="output.dir" value="out" />    <property name="jarname" value="DataAccess.jar" />    <property name="mainclass" value="com.lc.da.DARun" />     <!-- 第三方jar包的路径 -->    <path id="lib-classpath">        <fileset dir="${lib.dir}">            <include name="**/*.*" />        </fileset>    </path>         <target name="clean" >        <echo>第1步:</echo>        <echo>清除${basedir}\${classes.dir}\classes目录</echo>        <echo>清除${basedir}\${output.dir}\输出目录</echo>        <delete dir="${classes.dir}"/>                 <delete dir="${output.dir}"/>    </target>         <!-- 1. 初始化工作,如创建目录等 -->    <target name="init" depends="clean">        <echo>第2步:</echo>        <echo>创建${basedir}\${classes.dir}\classes目录</echo>        <echo>创建${basedir}\${output.dir}\输出目录</echo>        <mkdir dir="${classes.dir}" />        <mkdir dir="${output.dir}" />             </target>     <!-- 2. 编译 -->    <target name="compile" depends="init">        <!--这里因为javac的问题,导致打出来的jar运行时,logback的日志patten为 [null-1]        为了解决此问题,当时,采用直接将eclipse编译好的bin目录打包起来,但是这样存在潜在隐患,        查找资料 http://www.xuebuyuan.com/1914918.html 修改javac的参数,解决了此问题        -->        <!--encoding="UTF-8"              fork="true"  不影响            executable="C:/Program Files/Java/jdk1.7.0_80/bin/javac"  不影响              debug="true" 经测试,加上这句就好了             includeantruntime="on"  warning: 'includeantruntime' was not set        -->         <echo>第3步:</echo>        <echo>${JAVA_HOME}</echo>        <echo>编译${basedir}\${src.dir}\中的源代码,放到第2步创建的${basedir}\${classes.dir}\目录</echo>        <javac             srcdir="${src.dir}"             destdir="${classes.dir}"              encoding="UTF-8"             includeantruntime="on"            debug="true"        >                     <!-- <compilerarg line="-encoding UTF-8" />    -->            <classpath refid="lib-classpath" />        </javac>    </target>    <!-- 3. 打包jar文件 -->    <target name="jar" depends="compile">    <!-- <echo>第4步:</echo>        <echo>将${basedir}\${lib.dir}下的文件copy到${basedir}\${output.dir}\lib\下</echo>  -->        <copy todir="${output.dir}/lib">            <fileset dir="${lib.dir}" />        </copy>         <!--Create a property containing all .jar files,              prefix lib/, and seperated with a space-->        <pathconvert property="mf.classpath" pathsep=" ">            <mapper>                <chainedmapper>                    <!-- jar包文件只留文件名,去掉目录信息 -->                    <flattenmapper />                    <!-- add lib/ prefix -->                    <globmapper from="*" to="lib/*" />                </chainedmapper>            </mapper>            <path refid="lib-classpath" />        </pathconvert>         <!-- jar文件的输出路径 -->        <echo>第4步:将第3步的${basedir}\${classes.dir}\下编译好的class文件打成${jarname}包放到${basedir}\${output.dir}</echo>        <jar destfile="${output.dir}/${jarname}" basedir="${classes.dir}" encoding="UTF-8" >            <manifest>                <attribute name="Main-class" value="${mainclass}" />                <attribute name="Class-Path" value="${mf.classpath}" />            </manifest>        </jar>    </target></project>

0 0