第一次提交
This commit is contained in:
commit
8121362a03
4412 files changed
+1091845
No files matched your search
@@ -0,0 +1,180 @@
|
||||
<!--
|
||||
Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
(the "License"); you may not use this file except in compliance with
|
||||
the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta http-equiv="Content-Language" content="en-us">
|
||||
<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
|
||||
<title>Input Task</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<h2 id="input">Input</h2>
|
||||
<h3>Description</h3>
|
||||
|
||||
<p>Allows user interaction during the build process by prompting for input. To do so, it uses the
|
||||
configured <a href="../inputhandler.html">InputHandler</a>.</p>
|
||||
|
||||
<p>The prompt can be set via the <var>message</var> attribute or as character data nested into the
|
||||
element.</p>
|
||||
|
||||
<p>Optionally a set of valid input arguments can be defined via the <var>validargs</var>
|
||||
attribute. <code>Input</code> task will not accept a value that doesn't match one of the
|
||||
predefined.</p>
|
||||
|
||||
<p>Optionally a property can be created from the value entered by the user. This property can then
|
||||
be used during the following build run. <code>Input</code> then behaves
|
||||
as <a href="property.html">property task</a> which means that existing properties cannot be
|
||||
overridden. <em>Since Apache Ant 1.6</em>, <code><input></code> will not prompt for input if
|
||||
a property should be set by the task that has already been set in the project (and the task wouldn't
|
||||
have any effect).</p>
|
||||
|
||||
<p>Historically, a regular complaint about this task has been that it echoes characters to the
|
||||
console, this is a critical security defect, we must fix it immediately, etc, etc. This problem was
|
||||
due to the lack in early versions of Java of a (fully functional) facility for handling secure
|
||||
console input. In Java 6 that shortcoming in Java's API was addressed and Ant versions 1.7.1 and
|
||||
1.8 have added support for Java 6 secure console input feature (see <a href="#handler.type">handler
|
||||
type</a>).</p>
|
||||
|
||||
<p>IDE behaviour depends upon the IDE: some hang waiting for input, some let you type it in. For
|
||||
this situation, place the password in a (secured) property file and load in before
|
||||
the <code>input</code> task.</p>
|
||||
|
||||
<h3>Parameters</h3>
|
||||
<table class="attr">
|
||||
<tr>
|
||||
<th scope="col">Attribute</th>
|
||||
<th scope="col">Description</th>
|
||||
<th scope="col">Required</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>message</td>
|
||||
<td>the Message which gets displayed to the user during the build run.</td>
|
||||
<td>No</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>validargs</td>
|
||||
<td>comma separated String containing valid input arguments. If set, <code>input</code> task
|
||||
will reject any input not defined here. Comparison of input to <var>validargs</var> is case
|
||||
sensitive. If you want <q>a</q> and
|
||||
<q>A</q> to be accepted you will need to define both arguments within <var>validargs</var>.</td>
|
||||
<td>No</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>addproperty</td>
|
||||
<td>the name of a property to be created from input. Behaviour is equal
|
||||
to <a href="property.html">property task</a> which means that existing properties cannot be
|
||||
overridden.</td>
|
||||
<td>No</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>defaultvalue</td>
|
||||
<td>Defines the default value of the property to be created from input. Property value will be
|
||||
set to default if no input is received.</td>
|
||||
<td>No</td>
|
||||
</tr>
|
||||
</table>
|
||||
<h3>Parameters specified as nested elements</h3>
|
||||
<h4>Handler</h4>
|
||||
<p><em>Since Ant 1.7</em>, a nested <code><handler></code> element can be used to specify
|
||||
an <code>InputHandler</code>, so that different <code>InputHandler</code>s may be used among
|
||||
different <code>Input</code> tasks.</p>
|
||||
|
||||
<table class="attr">
|
||||
<tr>
|
||||
<th scope="col">Attribute</th>
|
||||
<th scope="col">Description</th>
|
||||
<th scope="col">Required</th>
|
||||
</tr>
|
||||
<tr id="handler.type">
|
||||
<td>type</td>
|
||||
<td>one of <q>default</q>, <q>propertyfile</q>, <q>greedy</q>, or <q>secure</q> (<em>since Ant
|
||||
1.8</em>).</td>
|
||||
<td rowspan="3">One of these</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>refid</td>
|
||||
<td class="left">Reference to an <code>InputHandler</code> defined elsewhere in the
|
||||
project.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>classname</td>
|
||||
<td class="left">The name of an <code>InputHandler</code> subclass.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>classpath</td>
|
||||
<td>The classpath to use with <var>classname</var>.</td>
|
||||
<td>No</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>classpathref</td>
|
||||
<td>The refid of a classpath to use with <var>classname</var>.</td>
|
||||
<td>No</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>loaderref</td>
|
||||
<td>The refid of a classloader to use with <var>classname</var>.
|
||||
</td>
|
||||
<td>No</td>
|
||||
</tr>
|
||||
</table>
|
||||
<p>The classpath can also be specified by means of one or more nested <code><classpath></code>
|
||||
elements.</p>
|
||||
|
||||
<h3>Examples</h3>
|
||||
<p>Pause the build run until return key is pressed when using
|
||||
the <a href="../inputhandler.html#defaulthandler">default InputHandler</a>, the concrete behavior is
|
||||
defined by the <code>InputHandler</code> implementation you use.</p>
|
||||
<pre><input/></pre>
|
||||
|
||||
<p>Display the message <q>Press Return key to continue...</q> and pause the build run until return
|
||||
key is pressed (again, the concrete behavior is implementation dependent).</p>
|
||||
<pre><input>Press Return key to continue...</input></pre>
|
||||
|
||||
<p>Display the message <q>Press Return key to continue...</q> and pause the build run until return
|
||||
key is pressed (see above).</p>
|
||||
<pre><input message="Press Return key to continue..."/></pre>
|
||||
|
||||
<p>Display the message <q>All data is going to be deleted from DB continue (y/n)?</q> and
|
||||
require <q>y</q> to continue build or <q>n</q> to exit build with following message <q>Build aborted
|
||||
by user.</q>.</p>
|
||||
<pre>
|
||||
<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>
|
||||
</pre>
|
||||
|
||||
<p>Display the message <q>Please enter db-username:</q> and set the property <code>db.user</code> to
|
||||
the value entered by the user.</p>
|
||||
<pre>
|
||||
<input message="Please enter db-username:"
|
||||
addproperty="db.user"/></pre>
|
||||
|
||||
<p>Same as above, but set <code>db.user</code> to the value <q>Scott-Tiger</q> if the user enters no
|
||||
value (simply presses <q>return</q>).</p>
|
||||
<pre>
|
||||
<input message="Please enter db-username:"
|
||||
addproperty="db.user"
|
||||
defaultvalue="Scott-Tiger"/></pre>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
Reference in new issue
Block a user