如何从 ant CSV 属性中提取第一个元素
给定 CSV ant 属性,
<property name="module.list" value="mod1,mod2,mod3,mod4,mod5"/>
我怎样才能获取第一个元素(即此处的“mod1”)?我想执行一个将“mod1”作为参数之一的命令。
此外..我无法将这个原始的“module.list”属性修改为列表或其他任何内容..尽管我可以从中创建另一个列表、属性等..
感谢任何帮助.. 谢谢
given a CSV ant property,
<property name="module.list" value="mod1,mod2,mod3,mod4,mod5"/>
how can I just get the first element (ie "mod1" here)? I want to execute a command that will take in "mod1" as one of the arguments.
Moreover.. I cannot modify this original "module.list" property to a list or anything else.. although I can create another list,property,etc from this..
Any help is appreciated..
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
这是实现您所描述的内容的一种方法。
This is one way to accomplish what you described.
根据 module.list 的实际内容,您也许可以使用 pathconvert:
该任务执行大量字符串操作,因此如果 module.list 的内容可以包含特殊路径字符,则此方法将不起作用。在这种情况下,我会选择更通用的答案之一。
Depending on the actual contents of module.list, you might be able to use pathconvert:
That task does a large amount of string manipulation, so if the contents of module.list can contain special path characters, this approach won't work. In that case, I'd go with one of the more generic answers.
Ant-Contrib 来救援。
您可以使用
propertyregex
来自 Ant-Contrib 的任务来提取第一个像这样的逗号分隔字符串的一部分:对于第二个问题:Ant 属性是故意不可变的,因此我通常建议不要依赖于更改属性值的设计。但如果这就是您所需要的,则
var
< Ant-Contrib 的 /a> 任务可以让您做到这一点。此外,Ant-Contrib 中的一些属性任务(例如上面提到的propertyregex
)具有可选的override
属性,允许它们更改目标属性的值。Ant-Contrib to the rescue.
You can use the
propertyregex
task from Ant-Contrib to extract the first part of a comma-separated string like this:For your second question: Ant properties are immutable on purpose, so I would generally recommend against designs which rely on changing values of properties. But if that is what you need, the
var
task from Ant-Contrib allows you to do just that. In addition, some of the property tasks in Ant-Contrib, likepropertyregex
mentioned above, have an optionaloverride
attribute which allow them to change the value of the target property.如果您想使用所有变量,您还可以查看 Ant-Contrib 任务的 for 和 foreach。
http://ant-contrib.sourceforge.net/tasks/tasks/index.html
为了使用 For Task,不要忘记声明此任务 def :
You can also take a look at Ant-Contrib tasks for and foreach, if you want to use all variables.
http://ant-contrib.sourceforge.net/tasks/tasks/index.html
In order to user For Task, don't forget to declare this task def :
使用脚本任务。您可以使用 Javascript 或 Beanshell 编写脚本,并使用 Ant API 来设置可从其他 ant 任务访问的属性。
Use the script task. You can write a script in Javascript or Beanshell and use the Ant API to set a property which you can access from other ant tasks.
第一个问题
使用新的 Ant 插件 = Flaka 您可以使用=
第二个问题
通常,属性一旦在 ant 中设置就不可变,但使用 Flaka< /a> 您可以像这样覆盖现有属性 =
将用新值 baz 覆盖现有属性 foo。
First question
With a new Ant addon = Flaka you may use =
Second question
normally properties are immutable once set in ant, but with Flaka you may overwrite an existing property like that =
would overwrite the existing property foo with new value baz.