Cari di Apache Ant 
    Apache Ant User Manual
Daftar Isi
(Sebelumnya) IncludeJar (Berikutnya)
Apache Ant Tasks

Input

Input

Description

Allows user interaction during the build process by prompting forinput. To do so, it uses the configured InputHandler.

The prompt can be set via the message attribute or as characterdata nested into the element.

Optionally a set of valid input arguments can be defined via thevalidargs attribute. Input task will not accept a value that doesn't matchone of the predefined.

Optionally a property can be created from the value entered by theuser. This property can then be used during the following buildrun. Input behaves according to propertytask which means that existing properties cannot be overriden.Since Apache Ant 1.6, <input> will not prompt for input ifa property should be set by the task that has already been set in theproject (and the task wouldn't have any effect).

Historically, a regular complaint about this task has been that it echoescharacters to the console, this is a critical security defect, we must fix itimmediately, etc, etc. This problem was due to the lack in early versions ofJava of a (fully functional) facility for handling secure console input.In Java 1.6 that shortcoming in Java's API was addressed and Ant versions 1.7.1and 1.8 have added support for Java 1.6's secure console input feature(see handler type).

IDE behaviour depends upon the IDE: some hang waiting for input, some let youtype it in. For this situation, place the password in a (secured) propertyfile and load in before the input task.

Parameters

Attribute Description Required
message the Message which gets displayed to the user during the build run. No
validargs comma separated String containing valid input arguments. If set, input task will reject any input not defined here. Validargs are compared case sensitive. If you want 'a' and 'A' to be accepted you will need to define both arguments within validargs. No
addproperty the name of a property to be created from input. Behaviour is equal to property task which means that existing properties cannot be overridden. No
defaultvalue Defines the default value of the property to be created from input. Property value will be set to default if no input is received. No

Parameters Specified as Nested Elements

Handler

Since Ant 1.7, a nested <handler> element can be used tospecify an InputHandler, so that different InputHandlers may be usedamong different Input tasks.

Attribute Description Required
type one of "default","propertyfile", "greedy", or "secure" (since Ant 1.8). One of these
refid Reference to an InputHandler defined elsewhere in the project.
classname The name of an InputHandler subclass.
classpath The classpath to use with classname. No
classpathref The refid of a classpath to use with classname. No
loaderref The refid of a classloader to use with classname. No

The classpath can also be specified by means of one or more nested<classpath> elements.

Examples

  <input/>

Will pause the build run until return key is pressed when using thedefaultInputHandler, the concrete behavior is defined by the InputHandlerimplementation you use.

  <input>Press Return key to continue...</input>

Will display the message "Press Return key tocontinue..." and pause the build run until return key is pressed(again, the concrete behavior is implementation dependent).

  <input message="Press Return key to continue..."  />

Will display the message "Press Return key tocontinue..." and pause the build run until return key is pressed(see above).

  <input message="All data is going to be deleted from DB continue (y/n)?" validargs="y,n" addproperty="do.delete"  />  <condition property="do.abort"> <equals arg1="n" arg2="${do.delete}"/>  </condition>  <fail if="do.abort">Build aborted by user.</fail>

Will display the message "All data is going to be deleted fromDB continue (y/n)?" and require 'y' to continue build or 'n' toexit build with following message "Build aborted byuser.".

  <input message="Please enter db-username:" addproperty="db.user"  />

Will display the message "Please enter db-username:" and set theproperty db.user to the value entered by the user.

  <input message="Please enter db-username:" addproperty="db.user" defaultvalue="Scott-Tiger"  />

Same as above, but will set db.user to the valueScott- Tiger if the user enters no value (simply types<return>).

(Sebelumnya) IncludeJar (Berikutnya)