- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发一个 eclipse 插件,它将以编程方式运行 Ant XML 文件。
我用了org.apache.tools.ant.helper.ProjectHelperImpl
和 org.apache.tools.ant.Project
然后解析 Ant XML 文件并运行特定目标,在本例中为 test
.
我的 Ant XML 文件如下所示:
<!-- project class path -->
<path id="projectClassPath">
<fileset dir="${basedir}/jars">
<include name="**/*.jar" />
</fileset>
</path>
<!-- task definitions -->
<taskdef file="${basedir}/tasks.properties">
<classpath refid="projectClassPath" />
</taskdef>
<!-- test custom ant task -->
<target name="test" description="test target">
<customTask />
</target>
<!-- test echo -->
<target name="testEcho" description="test echo target">
<echo message="this is a test."/>
</target>
tasks.properties 文件如下所示:
customTask=my.custom.task.CustomTask
我以编程方式运行 Ant 文件的 java 代码:
Project ant = new Project();
ProjectHelperImpl helper = new ProjectHelperImpl();
MyDefaultLogger log = new MyDefaultLogger();
ant.init();
helper.parse(ant, antXml);
log.setMessageOutputLevel(Project.MSG_VERBOSE);
ant.addBuildListener(log);
ant.executeTarget(testTarget);
运行目标 test
手动,很好,但运行 test
target 以编程方式显示此错误:
taskdef class my.custom.task.CustomTask cannot be found using the classloader AntClassLoader[]
如果我也将在没有 project class path
的情况下以编程方式执行文件, task definitions
和 test custom ant task
它将成功运行。
我的假设是,当以编程方式运行 Ant 文件时,它没有以某种方式注册类路径?
编辑:
多个目标名称 test
已更改 <!-- test echo -->
目标名称为 testEcho
. (致谢:@smooth reggae)
最佳答案
我已经设法修复了我的错误,我更改了调用 Ant XML 文件的 Java 实现,它运行得非常棒。
我的 Java 代码如下所示:
// get the default custom classpath from the preferences
AntCorePreferences corePreferences = AntCorePlugin.getPlugin().getPreferences();
URL[] urls = corePreferences.getURLs();
// get the location of the plugin jar
File bundleFile = FileLocator.getBundleFile(myPlugin.getBundle());
URL url = bundleFile.toURI().toURL();
// bond urls to complete classpath
List<URL> classpath = new ArrayList<URL>();
classpath.addAll(Arrays.asList(urls));
classpath.add(url);
AntRunner runner = new AntRunner();
// set custom classpath
runner.setCustomClasspath(classpath.toArray(new URL[classpath.size()]));
// set build file location
runner.setBuildFileLocation(xmlFile.getAbsolutePath());
// set build logger
runner.addBuildLogger(MyDefaultLogger.class.getName());
// set the specific target to be executed
runner.setExecutionTargets(new String[] { "test" });
// run
runner.run();
关于java - 使用类加载器 AntClassLoader[] 找不到 ant taskdef 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18547053/
我有一个用 Jasper 编译 jsp 文件的 Ant 任务。第一步是生成 java 文件:
我正在开发一个 eclipse 插件,它将以编程方式运行 Ant XML 文件。 我用了org.apache.tools.ant.helper.ProjectHelperImpl和 org.apach
将我的SDK升级到Android L后,我在使用ant构建android项目时遇到了问题。 错误输出: /Users/dreamtale/develop/android-sdk-macosx/tool
我正在尝试让“开始 Android 4”一书中的一些简单的 Android 应用程序运行。我在其中一个源代码目录上运行 ant 并收到此错误: # ant debug Buildfile: NowRe
我正在使用Android Studio来构建项目,并使用gradle来构建它。 此错误消息需要花费很多时间来解决。没有在线相关信息可修复。 如果有人有主意?请分享..谢谢您的时间。 失败:生成失败,发
所以我一直在尝试使用我一直在编写的程序在 Netbeans 中进行编译时遇到问题。直到我开始将游戏引擎集成到我一直在做的事情中,我才遇到这个问题,但是,它是最近才开始这样做的。 我收到的错误是:使用类
我使用以下 jar 代码创建了一个包含 .class 文件和执行类文件所需的依赖库的 jar
我是一名优秀的程序员,十分优秀!