Ant 打WAR包 找不到符号错误、编码 GBK 的不可映射字符的解决方法

首先肯定是要有ant这个东东啦!

在以下地址下载:

http://pan.baidu.com/share/link?shareid=1667796697&uk=4027864565

当然也可以去http://ant.apache.org/bindownload.cgi官网下载,我就是从这里下载的。

下载后,解压到本地,再到环境变量的path里面去设置路径,

如我的是:D:\WorkSoftWare\apache-ant-1.9.2\bin;然后粘贴到path最前面,确定即可!



在cmd命令下检测,输入

ant

提示找不到build.xml文件说明配置成功!

接下来...

扫描二维码关注公众号,回复: 5589615 查看本文章

Ant配置文件:

1:build.properties的配置如下:

#==================== File and Directory Names ========================
app.name=打包后你想取得名字
app.version=0.1(版本)
source.home=./src
lib.home=./WebRoot/WEB-INF/lib
webapp.home=./WebRoot
build.home=./build
dist.home=./dist
#==================== Compilation Control Options =====================
compile.debug=true
compile.deprecation=false
compile.optimize=true

 标红的地方,是需要修改的

eclipse默认webcontent

       myeclipse默认webroot
2、build.xml的配置:
 
 
<?xml version="1.0"?>
<!--项目名称必须要修改的-->
<project name="ExportCode" default="archive" basedir=".">

    <description>

           Test  Web Project

    </description>

 <property file="build.properties"/>
 <!-- ==================== Clean Target ==================================== -->

 

 <target name="clean" description="Delete old build and dist directories">

  <delete dir="${dist.home}"/>

  <delete dir="${build.home}"/>

 </target>

 

 <!-- ==================== Init Target ================================== -->

 <target name="init" depends="clean"  description="Create build directory">

  <mkdir dir="${build.home}" />

 </target>
 <!-- ==================== Compile Target ================================== -->

 

 <target name="compile" depends="init" description="Compile Java sources">

  <mkdir dir="${build.home}/WebRoot/WEB-INF/classes" />

  <javac srcdir="${source.home}"

    destdir="${build.home}/WebRoot/WEB-INF/classes"

    debug="${compile.debug}"

    deprecation="${compile.deprecation}"

    optimize="${compile.optimize}"

        source="1.5" target="1.5">(项目的JDK版本)

   <classpath>

    <path>

        <fileset dir="${lib.home}" />

       </path>

   </classpath>

  </javac>

 </target>
 <!-- ==================== Build Target ================================== -->

 <target name="build" depends="compile" description="Copies all non Java classes to build directoy">

  <copy todir="${build.home}">

   <fileset dir="${webapp.home}" excludes="CVS,***.java" />

  </copy>

 </target>
 <!-- ==================== Archive Target ================================== -->

 <target name="archive" depends="build" description="Create binary archive of all files in dist.home">

  <mkdir dir="${dist.home}" />

  <!-- Create application WAR file -->

     <jar jarfile="${dist.home}/${app.name}.war"

    basedir="${build.home}" />

 </target> 

</project>
把这两个配置文件放到项目中,与src在同一个文件夹下(非src下),如下图:

 
 
然后到dos下进入本项目:

然后就基本都能成功了,不过我还是遇到了几个问题:
问题1:找不到路径
解决方式:我的是MyEclipse,所以是webroot,Eclipse是WebContent;
问题2:找不到类
解决方式:把所有包放到lib下,一般人都已经这么做了吧?
问题3:编码,GBK编码问题
解决方式:加一句话,蓝色部分: 

   <javac srcdir="${source.home}"

    destdir="${build.home}/WebContent/WEB-INF/classes"

    debug="${compile.debug}"

    deprecation="${compile.deprecation}"

    optimize="${compile.optimize}"

        source="1.6" target="1.6" encoding="utf-8">

   <classpath>

    <path>

        <fileset dir="${lib.home}" />

       </path>

   </classpath>

  </javac>
问题4:javax.servlet.http.HttpServlet;  找不到符号。。。。
解决方式:把TOMCAT的lib目录下的servlet-api.jar
                        复制到java安装目录下的lib的ext目录下
                        C:\Program Files\Java\jdk1.6.0_24\jre\lib\ext 即可!
 
还有一个问题记不清了,反正网上都有解决办法,考验搜商咯!!!









 

猜你喜欢

转载自blog.csdn.net/hulufeng1203/article/details/14517533
今日推荐