我正在使用 ant 将应用程序部署到 Glassfish 应用程序服务器,该服务器需要管理员用户/密码才能登录。您能解释一下如何在没有人工干预的情况下从 ant build.xml 本身提供密码吗?
(我了解不建议使用硬编码密码,但请忽略此问题)
Ant<input>
任务可以从用户那里读取密码,或者如果属性已经存在则跳过它。从它的文档:
<input
message="Please enter db-username:"
addproperty="db.user"
defaultvalue="Scott-Tiger"
/>
如果属性 db.user 已经存在,则不执行任何操作。如果没有,它会提示用户输入用户名,并将 db.user 属性设置为它。如果用户只是键入一个返回,它使用默认值。如果您是从 IDE 执行此操作,请查看其文档以设置正确的输入处理程序。对于密码,使用<handler type="secure"/>
用作内部元素。
现在,您想将密码存储在单独的文件中。这不是一个好主意,但人们会这样做。所以,使用<property>
任务:
<property name="db.password" value="CompletelyInsecure"/> <!-- or -->
<property file="db.properties"/> <!-- Where db.properties contains the db codes. -->
对于您的情况,请使用这两种方法。我会使用一个属性文件,然后<input>
任务。
为了了解这有多复杂,Maven 构建系统建议人们加密所有密码数据,并将解密密钥存储在随身携带的记忆棒上。