【发布时间】:2009-11-02 19:21:16
【问题描述】:
任何想法,为什么在通过 java 代码执行 ANT 构建脚本的 SQL 任务后,没有一个调试 cmets 被打印一次?
构建脚本中执行sql的java类是
public class AntRunnerTest {
private Project project;
public void executeTask(String taskName) {
try {
project = new Project();
project.init();
project.setBasedir(new String("."));
ProjectHelper helper = ProjectHelper.getProjectHelper();
project.addReference("ant.projectHelper", helper);
helper.parse(project, new File("build-copy.xml"));
System.out.println("Before");
project.executeTarget(taskName);
System.out.println("After");
} catch(Exception ex) {
System.out.println(ex.getMessage());
}
}
public static void main(String args[]) {
try {
AntRunnerTest newInst = new AntRunnerTest();
newInst.executeTask("sql");
} catch(Exception e) {
System.out.println(""+e);
}
}
}
我没有看到调试字符串“After” 打印在控制台中。仅当我尝试使用 java 代码执行 sql 任务时才注意到此问题。
ant 脚本中包含以下简单的事务标记。
<transaction> <![CDATA[ select now() ]]> </transaction>
有什么想法吗?
提前致谢。
【问题讨论】:
-
确保将 sql 任务的“输出”属性值覆盖到某个 .txt 文件。这应该可以解决问题。
-
@Jay - 如果你已经回答了这个问题,你可以发布答案并接受它,这样问题就不会出现在未回答的列表中吗?
-
嗨。此代码执行 ant 文件名 build-copy.xml。该文件是否已经存在或动态创建?
-
@Iso,build-copy.xml 是一个可以使用/现有的文件。