use*_*689 4 java ant swing java-ee
我正在使用java ant来为某些实体生成证书和密钥库,稍后我将在java应用程序中使用它.该应用程序仅用于学习目的,我知道以纯文本格式存储密码是一个坏主意.
我正在使用的命令是:
<exec command="keytool -genkey -alias test -keyalg DSA -keysize 1024
-keystore keyst.ks -keypass pass -storepass pass -dname "
CN=Duke, OU=MyUnit, O=MyOrg, C=US""/>
Run Code Online (Sandbox Code Playgroud)
虽然命令按预期工作,但在每行后我都会收到几条警告:
Run Code Online (Sandbox Code Playgroud)[exec] The command attribute is deprecated.
[exec] Please use the executable attribute and nested arg elements.
Run Code Online (Sandbox Code Playgroud)
我很好奇是否有任何办法可以压制这些警告,除了不使用嵌套的args.该脚本生成大量文本输出,警告使得跟踪输出更加困难.
这个任务的command属性exec已被弃用,从我第一次开始使用Ant时开始就是Ant 1.5.我怀疑它会在相当长的时间内被弃用.除了警告之外没有问题,但您也可以使用execute替换它的属性.
唯一的问题是execute属性(与属性不同command)假定命令名称可以包含空格,因此您不能简单地将整个命令塞入execute属性中.相反,您必须使用子<arg>工具传入命令的参数:
<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>
Run Code Online (Sandbox Code Playgroud)
最后一个参数-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>
Run Code Online (Sandbox Code Playgroud)
请注意,该-dname字段的参数不再需要"它.该<arg value>明白这一点是尽管空白单个值.
您也可以组合子任务的类型line和value类型<arg>:
<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>
Run Code Online (Sandbox Code Playgroud)
至少,我之前没有遇到任何问题.
| 归档时间: |
|
| 查看次数: |
1177 次 |
| 最近记录: |