0

我正在使用 ant 将应用程序部署到 Glassfish 应用程序服务器,该服务器需要管理员用户/密码才能登录。您能解释一下如何在没有人工干预的情况下从 ant build.xml 本身提供密码吗?

(我了解不建议使用硬编码密码,但请忽略此问题)

4

1 回答 1

4

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 构建系统建议人们加密所有密码数据,并将解密密钥存储在随身携带的记忆棒上。

于 2013-04-25T15:19:31.583 回答