我正在使用 ant 将应用程序部署到 Glassfish 应用程序服务器,该服务器需要管理员用户/密码才能登录。您能解释一下如何从 ant build.xml 本身提供密码而无需手动干预吗?
(我知道不建议硬编码密码,但请忽略这个问题)
Ant<input>任务可以从用户读取密码,或者如果属性已存在则跳过它。来自其文档:
<input
message="Please enter db-username:"
addproperty="db.user"
defaultvalue="Scott-Tiger"
/>
Run Code Online (Sandbox Code Playgroud)
如果属性 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. -->
Run Code Online (Sandbox Code Playgroud)
根据您的情况,使用这两种方法。我会使用属性文件,然后使用<input>任务。
为了了解这会变得多么复杂,Maven 构建系统建议人们加密所有密码数据,并将解密密钥存储在随身携带的记忆棒上。