【问题标题】:call ant build through java code通过java代码调用ant build
【发布时间】:2011-09-17 04:46:28
【问题描述】:

我想通过java代码执行一个ant build。我使用以下代码,出现错误。

Ant helper = new Ant();
helper.setTarget("build_new");
helper.setAntfile("build_new.xml");
helper.execute();

错误:

线程“AWT-EventQueue-0”中的异常 java.lang.NullPointerException 在 org.apache.tools.ant.taskdefs.Ant.init(Ant.java:125) 在 org.apache.tools.ant.taskdefs.Ant.reinit(Ant.java:139) 在 org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:292) 在 com.demo.test.JavaSamp$4.actionPerformed(JavaSamp.java:216) 在 javax.swing.AbstractButton.fireActionPerformed(未知来源) 在 javax.swing.AbstractButton$Handler.actionPerformed(未知来源) 在 javax.swing.DefaultButtonModel.fireActionPerformed(未知来源) 在 javax.swing.DefaultButtonModel.setPressed(未知来源) 在 javax.swing.AbstractButton.doClick(未知来源) 在 javax.swing.plaf.basic.BasicMenuItemUI.doClick(未知来源) 在 javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(未知来源) 在 java.awt.Component.processMouseEvent(未知来源) 在 javax.swing.JComponent.processMouseEvent(未知来源) 在 java.awt.Component.processEvent(未知来源) 在 java.awt.Container.processEvent(未知来源) 在 java.awt.Component.dispatchEventImpl(未知来源) 在 java.awt.Container.dispatchEventImpl(未知来源) 在 java.awt.Component.dispatchEvent(未知来源) 在 java.awt.LightweightDispatcher.retargetMouseEvent(未知来源) 在 java.awt.LightweightDispatcher.processMouseEvent(未知来源) 在 java.awt.LightweightDispatcher.dispatchEvent(未知来源) 在 java.awt.Container.dispatchEventImpl(未知来源) 在 java.awt.Window.dispatchEventImpl(未知来源) 在 java.awt.Component.dispatchEvent(未知来源) 在 java.awt.EventQueue.dispatchEventImpl(未知来源) 在 java.awt.EventQueue.access$000(未知来源) 在 java.awt.EventQueue$1.run(未知来源) 在 java.awt.EventQueue$1.run(未知来源) 在 java.security.AccessController.doPrivileged(本机方法) 在 java.security.AccessControlContext$1.doIntersectionPrivilege(未知来源) 在 java.security.AccessControlContext$1.doIntersectionPrivilege(未知来源) 在 java.awt.EventQueue$2.run(未知来源) 在 java.awt.EventQueue$2.run(未知来源) 在 java.security.AccessController.doPrivileged(本机方法) 在 java.security.AccessControlContext$1.doIntersectionPrivilege(未知来源) 在 java.awt.EventQueue.dispatchEvent(未知来源) 在 java.awt.EventDispatchThread.pumpOneEventForFilters(未知来源) 在 java.awt.EventDispatchThread.pumpEventsForFilter(未知来源) 在 java.awt.EventDispatchThread.pumpEventsForHierarchy(未知来源) 在 java.awt.EventDispatchThread.pumpEvents(未知来源) 在 java.awt.EventDispatchThread.pumpEvents(未知来源) 在 java.awt.EventDispatchThread.run(未知来源)

有什么建议

【问题讨论】:

  • 问了 34 个问题,仍然没有格式化代码和异常。
  • 找到 Ant.java 的源代码。转到第 125 行。看看那里发生了什么。我的猜测是您的目标不存在,或者您的 ant 文件路径错误。
  • 您使用的 Ant 版本是多少?如果没有版本信息,很难从 src 中查看发生了什么:(

标签: java ant


【解决方案1】:

它也用于执行 ant build。

File buildFile = new File("build.xml");
Project p = new Project();
p.setUserProperty("ant.file", buildFile.getAbsolutePath());
p.init();
ProjectHelper helper = ProjectHelper.getProjectHelper();
p.addReference("ant.projectHelper", helper);
helper.parse(p, buildFile);
p.executeTarget(p.getDefaultTarget());

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-06
    • 1970-01-01
    • 2023-03-05
    • 2011-06-10
    • 2012-02-16
    • 2014-07-02
    • 2015-12-12
    相关资源
    最近更新 更多