问题标签 [taskdef]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 如何为不同的 ant 任务提供自定义 log4j.xml?
我有一个构建文件,作为构建过程的一部分,它依赖于几个 taskdef。这些 taskdef 项(例如,webdoclet 和 jasper2)使用 log4j 作为记录器。理想情况下,我希望能够为每个提供不同的 log4j 配置文件,但至少,我希望能够指定使用哪个 log4j 配置文件。
我过去所做的是将包含我希望 taskdef 使用的 log4j.xml 的目录放在类路径的前面。例如:
我已经验证,事实上,“Build”目录位于类路径的前面,并且该目录中存在 log4j.xml。但是,当我在调试中使用 log4j 以详细模式运行 ant 时,我看到 log4j 正在选择当前工作目录中的 log4j.xml ,这不是我想要的。Log4j 似乎没有使用类路径来解析默认的 log4j.xml。
我正在使用 log4j 1.2.8(嵌入在更大的框架中,所以我无法升级它)并且其中一些任务定义似乎依赖于 commons-logging 1.0.3。构建过程使用 Sun Java 5。
如果我set ANT_OPTS=-Dlog4j.configuration=Build/log4j.xml
在运行 ant 之前,taskdefs 会正确加载所需的 log4j.xml。
将“Build”目录放在用于工作的 taskdef 的类路径的前面。我不知道发生了什么变化。如何恢复我可以控制的行为——在 build.xml 中——哪个 log4j 配置文件用于给定任务?除了设置 ANT_OPTS 和重新排列文件以将应用程序的 log4j.xml 移出当前工作目录以使 log4j 找到正确的 log4j.xml 文件之外,还有其他方法吗?
ant - Why cannot Ant taskdef cannot load a resource outside ./net
When declaring external ant tasks using taskdef, for instance ant-contrib, the proposed setup is to use the followin taskdef:
This works when antcontrib.properties is located in net/sf/antcontrib relative to the build.xml file.
But when I put it in lib/net/sf/antcontrib and changes the taskdef into
Ant is not able to find the properties file, it gives the error
It seems like ant treats the lib directory separately and fails to load a taskdef resource from there.
ant - Groovy + Antbuilder:如何将 Grape 与 taskdef 一起使用?
这与 . 我正在尝试用 Grape 动态添加 maven-ant-tasks jar,模拟这个:
我尝试使用 Grape.grab() 使 AntBuilder 可以使用 maven-ant-tasks,如下所示:
但这不起作用,因为 Grape 将模块添加到与 ANT 引擎正在使用的不同的 ClassLoader 中。所以,我从这个 AntBuilder 类路径问题中得到了建议,让 Grape 使用根 ClassLoader:
现在它抛出一个 LinkageError:
关于让它发挥作用的任何提示?或者,整件事是个坏主意?
ant - Ant taskdef 我需要什么类路径?
我是蚂蚁的新手。有人可以告诉我为 taskdef 的“classpathref”赋予什么价值吗?它会是类文件的路径吗?如果是,可以举一个例子,因为我试过了,但它不适合我。
grails - Grails ant 任务不起作用 - 无法启动 Grails:java.lang.reflect.InvocationTargetException
我在使用 Grails 运行看起来非常基本的东西时遇到问题。我想从 Ant 脚本中调用 grails 命令——Grails 提供了一个 Grails 任务来实现这一点。我已经根据文档定义了 Grails taskdef 和类路径,但是,无论我调用什么命令,我都会得到相同的错误......
即使我使用“grails create-app”创建一个新的 Grails 应用程序,然后运行集成 ant 命令“grails integration-with --ant”以生成默认的 build.xml,在运行任何任务时我都会遇到相同的错误在生成的 build.xml 中。
我已经用 Grails 1.3.1、1.3.4 和 1.3.5 对此进行了测试,并且遇到了同样的错误。
有没有其他人遇到过这个问题?一定是我做错了什么愚蠢的事情,否则这永远不会走出 Grails 工厂的大门...... ;)
ant - taskdef 的类路径?
我正在 Ant 中定义一个新任务。我将它导出为 jar 并添加到我的构建文件中:
问题是这在运行时失败。它告诉我它没有找到课程。通过将 jar 添加到类路径中,它得到了纠正。
我的问题是:有没有一种方法可以在不更改类路径的情况下从 Ant 构建文件中引用我的 jar?
ant - Ant 可选任务 SSHExec 和 SCP 的问题。类路径问题?
我正在修改 Ant 脚本(当前在 MyEclipse 中使用)以从命令行工作。我这样做是为了让任何人都可以在没有 MyEclipse 的情况下签出项目并构建它。我遇到的问题是 MyEclipse 包含幕后的依赖项。它通过查看工作区的 Ant 配置并根据首选项对话框中选定的库编译类路径来完成此操作。长话短说,我需要使用这些依赖项并使脚本足够智能,以便在没有 MyEclipse 的帮助下自行包含它们。
让我头疼的任务是 sshexec 和 scp 任务。它们是可选的 ant 任务,需要某个版本的 jsch 才能运行。我从 MyEclipse 的 Ant 类路径中删除了 jsch,并将其添加到项目本身的 lib 文件夹(lib/dev)中。MyEclipse 立即抱怨 SSHExec 类找不到依赖类,com.jcraft.jsch.UserInfo
它是 jsch-0.1.44.jar 的一部分。
我看不到从构建脚本中为 Ant 设置类路径的方法。我有以下代码,它path
向脚本添加了一个元素,但我认为 Ant 不会使用它,除非明确关联到一个任务或另一个元素。
看来我需要用来taskdef
定义 sshexec 和 scp 任务:
MyEclipse 对此抱怨,"taskdef A class needed by class org.apache.tools.ant.taskdefs.optional.ssh.SSHExec cannot be found: com/jcraft/jsch/UserInfo"
它显然在 classpathref,web-jars 中。由于这个格式错误或配置错误的taskdef,我无法在脚本中运行任何东西。
java - 集成 ant - taskdef 类加载器问题
在 Weblogic 10.3 上,我的企业应用程序包含一个在内部运行 ant 脚本的 Web 服务。我的问题是由于java.lang.ClassNotFoundExceptions
.
(所有这些在 Tomcat 5.5 上运行良好)
我的任务实现可以在 4 个不同的位置找到:
- something.ear/APP-INF/lib/antaddon.jar!/foo/bar/MyTask.class
- something.ear/Webservice.war/WEB-INF/lib/antaddon.jar!/foo/bar/MyTask.class
- something.ear/Webservice.war/WEB-INF/classes/foo/bar/MyTask.class
- 服务器/lib/antaddon.jar!/foo/bar/MyTask.class
我看到Weblogic 10.3
集成Ant 1.6.5
模块可能会导致问题,因为我Ant 1.8.0
捆绑了一个,所以我添加了
到我的 weblogic-application.xml 来克服这个问题。(这解决了一些NoSuchMethodErrors
..)但是我的任务仍然没有找到:
你能帮我解决这个问题吗?
ant - Taskdef 失败并出现错误:taskdef 元素的类名属性未定义
我有一个包含这一行的 Ant 构建文件:
这条线上的构建失败了,说:
我认为这意味着 Ant 找不到类文件。
Ant 在哪里寻找这个文件?我在哪里可以找到它以将其添加到位置 X?
ant - 下载后加载 ant 库
我正在尝试编写一个从我们的存储库下载库(ivy 和 svnant)的 Ant 脚本,并将它们用作来自同一个构建脚本的 taskdef。如果所有库都存在或全部丢失,则它可以工作,但如果需要辅助库(如 svnClientAdapter),则会出现错误:
换句话说,如果主库存在或不存在,一切都很好;但是如果主库存在并且依赖库之一不存在,那么我会失败。如果没有其他任何更改,则第二次调用将成功。
我尝试从任务和具有相同结果的类中调用检测/下载任务。我的代码是:
如果仅缺少 svnant.jar,则一切正常。如果缺少 svnClientAdapter.jar,并且在尝试使用任务时出现“NoClassDefFoundError”,则这将在 taskdef 任务上出现“找不到类”错误。如前所述,我尝试过将retrieve.antlib-svn 目标称为依赖项、“ant”任务和“java”任务(使用fork)的位置。
这是 Ubuntu 10.10 和 RedHat ELS6 上带有 JDK 1.6.0_11 的 Ant 1.7.0。为简洁起见,删除了检测/避免代码。启用调试后,工作调用和失败之间的唯一区别是缺少的 jar 包含在 ant 的类路径中,我尝试在 taskdef 任务中覆盖它。
我不介意产生一个新的顶级 ant 调用,但 ivy.project.invoked-targets 在 1.7.0 中似乎不可用,而且我还没有找到另一种方法来调用具有相同起始目标的 ant。