是否有一个NAnt任务将回显出构建期间当前设置的所有属性名称和值?可能与Ant echoproperties任务相当的东西?
我想用时间戳重命名我的应用程序文件夹,然后使用相同的文件夹名称解压缩我的应用程序的较新版本.使用Ant (move任务),看起来您可以将内容从一个文件夹移动到另一个文件夹.
这是我在Ant中做到这一点的唯一方法吗?
有没有一种完善的方式在项目之间共享Ant目标?我目前有一个解决方案,但它有点不优雅.这是我到目前为止所做的.
我ivy-tasks.xml的网络服务器上有一个名为托管的文件.此文件包含用于管理与Ivy的项目依赖关系的样板任务.例如:
<project name="ant-ivy-tasks" default="init-ivy"
xmlns:ivy="antlib:org.apache.ivy.ant">
...
<target name="ivy-download" unless="skip.ivy.download">
<mkdir dir="${ivy.jar.dir}"/>
<echo message="Installing ivy..."/>
<get src="http://repo1.maven.org/maven2/org/apache/ivy/ivy/${ivy.install.version}/ivy-${ivy.install.version}.jar"
dest="${ivy.jar.file}" usetimestamp="true"/>
</target>
<target name="ivy-init" depends="ivy-download"
description="-> Defines ivy tasks and loads global settings">
<path id="ivy.lib.path">
<fileset dir="${ivy.jar.dir}" includes="*.jar"/>
</path>
<taskdef resource="org/apache/ivy/ant/antlib.xml"
uri="antlib:org.apache.ivy.ant"
classpathref="ivy.lib.path"/>
<ivy:settings url="http://myserver/ivy/settings/ivysettings-user.xml"/>
</target>
...
</project>
Run Code Online (Sandbox Code Playgroud)
这个文件被托管的原因是因为我不希望:
我在项目的build.xmls中对此文件的处理方式如下:
<property name="download.dir" location="download"/>
<mkdir dir="${download.dir}"/>
<echo message="Downloading import files to ${download.dir}"/>
<get src="http://myserver/ivy/ivy-tasks.xml" dest="${download.dir}/ivy-tasks.xml" usetimestamp="true"/>
<import file="${download.dir}/ivy-tasks.xml"/>
Run Code Online (Sandbox Code Playgroud)
关于这一点的"脏"部分是我必须在 …
我需要以这种方式匹配我的字符串:*myString*
where *表示任何子字符串.我应该使用哪种方法?
你能帮我吗?
我有一个Hashtable<string,string>,在我的程序中,我想记录Hashtable的值,以便稍后处理.
我的问题是:我们可以将对象Hastable写入文件吗?如果是这样,我们以后如何加载该文件?
我有一个关于Ant及其对环境变量的处理的问题.为了说明我有一个小样本.
给定Ant构建文件test.xml:
<project name="myproj" default="testProps">
<property environment="env"/>
<target name="testProps">
<echo message="${env.MyEnvVar}"/>
<echo message="${MY_PROPERTY}"/>
</target>
</project>
Run Code Online (Sandbox Code Playgroud)
和属性文件test.props:
MY_PROPERTY=${env.MyEnvVar}
Run Code Online (Sandbox Code Playgroud)
现在将环境变量设置MyEnvVar为某个值(在我的情况下为foo)并使用此命令行运行Ant:
ant -f test.xml -propertyfile test.props testProps
Run Code Online (Sandbox Code Playgroud)
我得到的输出是:
[echo] foo
[echo] ${env.MyEnvVar}
Run Code Online (Sandbox Code Playgroud)
我想知道的是,是否有任何方法来构造输入属性文件,以便我得到
[echo] foo
[echo] foo
Run Code Online (Sandbox Code Playgroud)
也就是说,我想在属性文件中命名一个环境变量,该变量在Ant脚本中被替换.注意 - 我知道如何直接访问环境变量(如此处所做).我需要做的是使用一组Ant脚本,这些脚本期望在使用不同名称定义相同属性的环境中的一个属性集合.因此,想到在属性文件中"桥接"它们.
我使用的是Ant 1.6.5版.
我在Ant中定义了一个新任务.我将其导出为jar并添加到我的构建文件中:
<taskdef classname="X" classpath="Y.jar"/>
Run Code Online (Sandbox Code Playgroud)
问题是这在运行时失败了.它告诉我它没有找到班级.通过将jar添加到类路径,它已得到纠正.
我的问题是:有没有办法可以从Ant构建文件中引用我的jar,而不更改类路径?
我正在使用Perl程序从文件中提取文本.我有一个字符串数组,我用它作为文本的分隔符,例如:
$pat = $arr[1] . '(.*?)' . $arr[2];
if ( $src =~ /$pat/ ) {
print $1;
}
Run Code Online (Sandbox Code Playgroud)
但是,数组中的两个字符串是$450和(Buy now).这些问题是字符串中的符号表示Perl正则表达式中的字符串结尾和捕获组,因此文本不会像我想要的那样解析.
有没有解决的办法?
输入示例:
SERVER_NAME=server1
PROFILE_NAME=profile1
...
Run Code Online (Sandbox Code Playgroud)
示例输出:
SERVER_NAME=server3
PROFILE_NAME=profile3
...
Run Code Online (Sandbox Code Playgroud)
这个文件将用于applicationContext.xml.我试过了
<copy file="${web.dir}/jexamples.css_tpl"
tofile="${web.dir}/jexamples.css" >
<filterchain>
<replacetokens>
<token key="SERVER_NAME" value="server2"/>
<token key="PROFILE_NAME" value="profi"/>
</replacetokens>
</filterchain>
</copy>
Run Code Online (Sandbox Code Playgroud)
但它不起作用.
我在Ant下使用Junit来执行Selenium Test.My测试用例需要读取包含测试数据的文件(为了完成数据驱动测试).我不介意在测试用例中嵌入文件名,但是我想在build.xml文件中参数化存储数据文件的目录的名称.
从build.xml传递信息到测试用例的最佳方法是什么?使用ant属性是个好主意吗?是否可以从build.xml注入Junit4参数?