【问题标题】:How to extract package name from filepath with Apache Ant?如何使用 Apache Ant 从文件路径中提取包名?
【发布时间】:2014-09-23 07:36:19
【问题描述】:

我想将文件路径转换为 ​​android 包名称,如下面的给定文件路径:

F:\PartnerFolders\modify\src\com\builder\components\AlwaysFocusedText.java

我要转换

\com\builder\components\

com.builder.components

并将该文件移动到转换后的包中

提前致谢。

【问题讨论】:

  • 为什么找不到indexOf src 和相应的偏移量replaceAll \ 。
  • @AbhiroopSarkar 感谢您的建议 :)

标签: java android ant path ant-contrib


【解决方案1】:

你已经标记了 ant-contrib,所以你可以只使用 2 个属性正则表达式,例如,如果你的文件路径是在一个属性中定义的:

<property name="file.path" value="F:\PartnerFolders\modify\src\com\builder\components\AlwaysFocusedText.java"/> 

然后您可以使用以下代码获取所需的包名称:

<propertyregex property="stripped.file.path" input="${file.path}" regexp=".*\\src\\(.*)\\.*\.java" select="\1"/>
<propertyregex property="package" input="${stripped.file.path}" regexp="\\" replace="." global="true"/>

第一个propertyregex 将删除字符串:\com\builder\components\ 并将其存储在属性stripped.file.path 中。 select="\1" 选择第一组,即 regexp 中第一个括号内包含的内容。 第二个属性正则表达式会将 \ 替换为 . 并将其存储在属性 package 中。

【讨论】:

    猜你喜欢
    • 2011-04-28
    • 2011-06-13
    • 1970-01-01
    • 1970-01-01
    • 2010-10-01
    • 1970-01-01
    • 2016-06-19
    • 1970-01-01
    相关资源
    最近更新 更多