在ant中,无法实现常见的字符串操作,比如截取、替换。我们可以借助ant-contrib中的propertyregex任务实现字符串的截取、替换.
下面的例子是在maven中运行ant,ant中来做字符串截取。
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-antrun-plugin</artifactId> <version>1.7</version> <executions> <execution> <id>generate-installer</id> <phase>install</phase> <configuration> <target> <ant antfile="${basedir}/build.xml"> <target name="test" /> </ant> </target> </configuration> <goals> <goal>run</goal> </goals> </execution> </executions> <dependencies> <dependency> <groupId>ant-contrib</groupId> <artifactId>ant-contrib</artifactId> <version>1.0b3</version> <exclusions> <exclusion> <groupId>ant</groupId> <artifactId>ant</artifactId> </exclusion> </exclusions> </dependency> </dependencies> </plugin>
在build.xml中
<project name="ant substring string" default="test"> <taskdef resource="net/sf/antcontrib/antlib.xml"/> <propertyregex property="project.db.version" input="14.1.4.6" regexp="(.*)\." select="\3" casesensitive="false" /> <target name="test"> <echo>project.db.version is ${project.db.version}</echo> </target> </project>
最重要的是在maven的plugin中加上dependency,并在build.xml中加上<taskdef resource="net/sf/antcontrib/antlib.xml"/>。
这个例子是把14.1.4.6截取为14.1.4