查看了 stackoverflow 上的几篇文章以及其他来源(在线 + ANT 定义指南),但到目前为止没有一个有帮助。我无法从编译中排除该文件。
我只有一个文件想要从编译中排除,而 ANT 文档并没有真正说明细节。
我试图排除HTMLParser.java
从编译。
还尝试使用excludesfile
也。但它仍然符合 HTMLParser.java
我编写了简单的 ANT 来检查下面尝试不同的变化。
谁能告诉我出了什么问题吗?
<javac srcdir="${utilitiesSrc}" destdir="${dest}">
<excludesfile name="C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\head_first\src\com\masatosan\utilities\HTMLParser.java" />
</javac>
<project
name="CompileMasatosan"
default="main"
basedir="C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\head_first\src\com\masatosan">
<property name="dest"
location="C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\head_first\WEB-INF\classes" />
<property name="utilitiesSrc"
location="C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\head_first\src\com\masatosan\utilities" />
<javac srcdir="${utilitiesSrc}" destdir="${dest}">
<exclude name="C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\head_first\src\com\masatosan\utilities\HTMLParser.java" />
</javac>
</project>
我相信 HTMLParser.java 没有依赖性,因为我注释掉了除类声明行之外的所有行。
HTMLParser.java
package com.masatosan.utilities;
public class HTMLParser {
/* commenting out since Eclipse doesn't like some characters :(
public static final String escapeHTML(String s){
StringBuffer sb = new StringBuffer();
int n = s.length();
for (int i = 0; i < n; i++) {
char c = s.charAt(i);
switch (c) {
case '<': sb.append("<"); break;
case '>': sb.append(">"); break;
case '&': sb.append("&"); break;
case '"': sb.append("""); break;
case 'Ã ': sb.append("à");break;
case 'À': sb.append("À");break;
case 'â': sb.append("â");break;
case 'Â': sb.append("Â");break;
case 'ä': sb.append("ä");break;
case 'Ä': sb.append("Ä");break;
case 'Ã¥': sb.append("å");break;
case 'Ã…': sb.append("Å");break;
case 'æ': sb.append("æ");break;
case 'Æ': sb.append("Æ");break;
case 'ç': sb.append("ç");break;
case 'Ç': sb.append("Ç");break;
case 'é': sb.append("é");break;
case 'É': sb.append("É");break;
case 'è': sb.append("è");break;
case 'È': sb.append("È");break;
case 'ê': sb.append("ê");break;
case 'Ê': sb.append("Ê");break;
case 'ë': sb.append("ë");break;
case 'Ë': sb.append("Ë");break;
case 'ï': sb.append("ï");break;
case 'Ã�': sb.append("Ï");break;
case 'ô': sb.append("ô");break;
case 'Ô': sb.append("Ô");break;
case 'ö': sb.append("ö");break;
case 'Ö': sb.append("Ö");break;
case 'ø': sb.append("ø");break;
case 'Ø': sb.append("Ø");break;
case 'ß': sb.append("ß");break;
case 'ù': sb.append("ù");break;
case 'Ù': sb.append("Ù");break;
case 'û': sb.append("û");break;
case 'Û': sb.append("Û");break;
case 'ü': sb.append("ü");break;
case 'Ãœ': sb.append("Ü");break;
case '®': sb.append("®");break;
case '©': sb.append("©");break;
case '€': sb.append("€"); break;
// be carefull with this one (non-breaking whitee space)
case ' ': sb.append(" ");break;
default: sb.append(c); break;
}
}
return sb.toString();
}
*/
}//
UPDATE
正如评论中所建议的,我将 exceptsfile name 属性更改为 srcdir 的相对路径,就是这样!所以截图看起来像:
<javac srcdir="${utilitiesSrc}" destdir="${dest}">
<excludesfile name="HTMLParser.java" />
</javac>