专家,
在我的程序中,有属性文件,JSP文件和* .java文件。
这些文件将使用“域名”进行某些操作。 (我使用“域名”是因为它看起来像一个域名,例如:abc.abcnet.com或abc.com) 行动示例是它将检索此“域名”并查找LDAP结构
按照步骤2示例,您可能知道在LDAP结构中,它通常会反转域名(例如:ou = com,ou = abcnet,cn = abc ...)
我的程序将部署到不同的服务器,每个服务器都有不同的LDAP节点名称
每次将程序部署到其他服务器时,我都需要使用正确的“域名”手动更新属性文件,JSP文件和java文件
我的客户希望我自动完成部署任务,他们只希望在文件中填写“域名”(例如:每次部署代码之前,他们只编辑属性文件,设置Key = abc.abcnet.com)
因此我想知道是否可以让我的客户只修改属性文件,我的ant任务可以读取密钥的值(例如:abc.abcnet.com)然后反转它。
并使用此反向字符串替换我的程序文件。
我搜索并看起来像Javascript提供反向功能,但它无法直接读取本地文件。
我希望这次我解释清楚。
任何想法都是值得欣赏的。
最好的问候
答案 0 :(得分:0)
试试这个,它将Groovy用于脚本部分 - 您可以根据Ant文档替换其他语言。我已更新解决方案,以包含使用反转值设置新属性 域 。
<project name="StackOverflow" basedir="." default="reverse">
<target name="reverse">
<loadproperties srcFile="domain.properties"/>
<!--<echo>${key}</echo> -->
<script language="groovy">
def components = key.split('\\.').reverse().join('.')
def project = self.project
project.setProperty('domain', components)
</script>
<echo>Reversed domain=${domain}</echo>
</target>
</project>
此处输出
Buildfile: c:\GroovyStuff\StackOverflowQuestion\reverse.xml
reverse:
[echo] Reversed domain=com.abcnet.abc
BUILD SUCCESSFUL
和属性文件 - domain.properties
key=abc.abcnet.com