删除jar的相对路径并仅保留jar名称

时间:2011-04-26 19:07:08

标签: ant

我有一个属性文件,其中包含来自不同路径的jar列表,​​如

/gwt/X/2.1.0/gwt-servlet.jar                                    
/gwt/X/2.1.0/gwt-user.jar
/gwt/X/2.1.0/gwt-dev.jar    
/gwt/X/2.1.0/gwt-soyc-vis.jar 
/log4j/X/1.2.15/log4j-1.2.15.jar
/GWT_LOG/X/3.0.3/gwt-log-3.0.3.jar
/GWT_MATH/X/2.1/gwt-math-2.1.jar
/GWT_MATH/X/2.1/gwt-math-server-2.1.jar 
/GWT_Commons_Logging/X/0.3/GWT-commons-logging/gwt-commons-logging-0.3.jar          
/GWT_Commons_Logging/X/0.3/GWT-commons-logging/gwt-commons-logging-service-0.3.jar

我在这个清单中有大约1000个这样的罐子。 我想在jar名称之前删除相对路径,并将jar名称放在一个新文件中,有点像这样

gwt-servlet.jar             
gwt-user.jar
gwt-dev.jar 
gwt-soyc-vis.jar 
log4j-1.2.15.jar
gwt-log-3.0.3.jar
gwt-math-2.1.jar
gwt-math-server-2.1.jar 
gwt-commons-logging-0.3.jar     
gwt-commons-logging-service-0.3.jar

这不是一次性活动,因此我想在My build.xml中创建目标或任务以供日常使用。

2 个答案:

答案 0 :(得分:1)

 <replaceregexp file="file.txt" match="[^ ]*/" replace="" byline="true" flags="g"/>

答案 1 :(得分:0)

Ant不适合这样的任务。为Java编写一个简单的Ant任务可能要简单得多(或者是一个小型Java程序;只需创建File个对象并调用getName()来获取最后一个路径元素)。

但是如果你必须:scriptscriptdef可能是你的朋友(前提是你的Ant版本已经足够了;文档提到1.6.3)。您可以从这些脚本中调用任何Java方法。有关示例,请参阅manual