在exec
任務的command
屬性已被棄用,當我使用Ant第一次開始以來一直螞蟻1.5。我懷疑它會保持已棄用相當長的時間。除警告外沒有其他問題,但您也可以使用替代它的execute
屬性。
唯一的問題是,execute
屬性(不像command
屬性)假設命令名稱可以包含空格,所以你不能簡單地塞進整個命令進入execute
屬性。相反,你必須使用<arg>
subtesk在該命令的參數來傳遞:
<exec executable="keytool">
<arg line="-genkey -alias test -keyalg DSA -keysize 1024 -keystore keyst.ks -keypass pass -storepass pass -dname "CN=Duke, OU=MyUnit, O=MyOrg, C=US""
</exec>
這最後一個參數,-dname
可能會出現問題。但是,您可以使用<arg value=">
子任務來解決這個問題:
<exec executable="keytool">
<arg value="-genkey"/>
<arg value="-alias"/>
<arg value="test"/>
<arg value="-keyalg"/>
<arg value="DSA"/>
<arg value="-keysize"/>
<arg value="1024"/>
<arg value="-keystore"/>
<arg value="keyst.ks"/>
<arg value="-keypass"/>
<arg value="pass"/>
<arg value="-storepass"/>
<arg value="pass"/>
<arg value="-dname"/>
<arg value="CN=Duke, OU=MyUnit, O=MyOrg, C=US"/>
</exec>
注意,對於-dname
領域的參數不再需要圍繞它"
。 <arg value>
瞭解這是儘管有空白的單個值。
您可以組合<arg>
子任務太多的line
和value
類型:
<exec executable="keytool">
<arg line="-genkey -alias test -keyalg DSA -keysize 1024"/>
<arg line="-keystore keyst.ks -keypass pass123 -storepass pass123 -dname"/>
<arg value="CN=Duke, OU=MyUnit, O=MyOrg, C=US"/>
</exec>
至少,我認爲沒有任何問題之前完成。