我在windows机器中使用rcleartool
8.0.0.6。有没有办法使用rcleartool
非交互模式?
例如,如果我输入:rcleartool lsview -s
,客户端会要求我以交互模式输入服务器URL,用户名/密码。
无论如何使用rcleartool lsview -s -username [username] -pass [password] -server [server]
?
我想在我的java代码中使用该命令,所以非交互模式应该更好吗?
有什么建议吗?
答案 0 :(得分:2)
如“The ClearCase 8.x remote client command-line interface (rcleartool
)”中所述:
rcleartool
是IBM Rational ClearCase远程客户端(CCRC)的命令行界面。
此接口首先作为单独下载发布,以便与V7.1.2.x及更高版本兼容,在V8.0.0.3中提供了本文档中描述的更改。
rcleartool login
不是caching credentials before (7.x)
它应该现在缓存这些凭证。
CR 3508提到增强已于2013年6月14日发布RFE(增强请求):
在CCRC CLI单行模式下,您应该只指定一次登录凭据。
rcleartool
的会话缓存已在8.0.0.3
这意味着在一个rcleartool login -lname xxx -server xxx -password xxx
之后,所有其他rcleartool
命令不再需要登录/密码。
您可以尝试按照IBM文章“How to run rcleartool without entering username, password and server URL every time”
进行操作建议修改rcleartool.bat
脚本。
通常当一个人运行
rcleartool
(不在rcleartool
提示下)时,他每次都需要输入用户名,密码和服务器URL。例如:
rcleartool lsvob -username myusername -password mypassword -server http://myserver:12080/TeamWeb/services/Team
rcleartool lsview -username myusername -password mypassword -server http://myserver:12080/TeamWeb/services/Team
您可以备份原始
rcleartool.bat
(UNIX下的rcleartool
),然后按如下方式修改该文件:在
中找到以下行rcleartool.bat
"%_JAVACMD%" -Djava.util.logging.config.file="%CCRCCLI%/logging.properties" -cp "%CM_API_DIR%\stpwvcm.jar";"%CM_API_DIR%\stpcmmn.jar";"%CM_API_DIR%\stpcc.jar";"%CM_API_DIR%\remote_core.jar";"%CM_API_DIR%\commons-httpclient-3.0.jar";"%CM_API_DIR%\commons-codec-1.3.jar";"%CCRCCLI%\commons-cli-1.1.jar";"%CM_API_DIR%\icu4j-3_8.jar";"%CM_API_DIR%\commons-logging-1.0.4.jar";"%CCRCCLI%\rcleartool.jar" com.ibm.rational.ccrc.cli.command.ClearWan %*
Add the username, password and server URL at the end
"%_JAVACMD%" -Djava.util.logging.config.file="%CCRCCLI%/logging.properties" -cp "%CM_API_DIR%\stpwvcm.jar";"%CM_API_DIR%\stpcmmn.jar";"%CM_API_DIR%\stpcc.jar";"%CM_API_DIR%\remote_core.jar";"%CM_API_DIR%\commons-httpclient-3.0.jar";"%CM_API_DIR%\commons-codec-1.3.jar";"%CCRCCLI%\commons-cli-1.1.jar";"%CM_API_DIR%\icu4j-3_8.jar";"%CM_API_DIR%\commons-logging-1.0.4.jar";"%CCRCCLI%\rcleartool.jar" com.ibm.rational.ccrc.cli.command.ClearWan %* -username myusername -password mypassword -server http://myserver:12080/TeamWeb/services/Team
进行上述更改后,每次都可以使用rcleartool而无需输入用户名,密码和服务器URL。
例如,
rcleartool lsvob
rcleartool lsview
请注意,仍然需要直接运行
rcleartool
(不在rcleartool
提示符下),例如:
- 能够使用>捕获结果操作者。
- 能够在批处理文件中运行。
答案 1 :(得分:2)
Clear Case 7.1.X 的方法在许多情况下都不起作用,例如在简单的CHECKOUT操作上或只是启动 rcleartool CLI 。 / p>
那是因为服务器/登录选项应该在其他参数之前。例如: rcleartool co </ strong> -server XXX -login me -password 1234 fileToCheckOut.txt
所以我建议改进一下上面提到的修正,将代表 Clear Case 命令的批处理的第一个输入参数与其余部分分开,给定命令的参数
所以它看起来或多或少是这样的:
set LOGIN=-server XXX -login me -password 1234
set CMD=%1
set PARAMS=
shift
:loop1
if [%1]==[] goto after_loop
set PARAMS=%PARAMS% %1
shift
goto loop1
:after_loop
"%_JAVACMD%" -Djava.util.logging.config.file="%CCRCCLI%/logging.properties" -cp "%CM_API_DIR%\stpwvcm.jar";"%CM_API_DIR%\stpcmmn.jar";"%CM_API_DIR%\stpcc.jar";"%CM_API_DIR%\remote_core.jar";"%CM_API_DIR%\commons-httpclient-3.0.jar";"%CM_API_DIR%\commons-codec-1.3.jar";"%CCRCCLI%\commons-cli-1.1.jar";"%CM_API_DIR%\icu4j-3_8.jar";"%CM_API_DIR%\commons-logging-1.0.4.jar";"%CCRCCLI%\rcleartool.jar" com.ibm.rational.ccrc.cli.command.ClearWan %CMD% %LOGIN% %PARAMS%
丑陋的魔鬼本人,但大多数情况下 。 您可以像以前一样执行简单的任务,还可以执行Check-outs / ins和类似的操作。
CAN&#39; 仍然要启动rcleartool CLI并使用 help 命令。 它向我索要密码,即使我输入密码也失败了。
在接收带引号和空格的参数时,编辑对shift snipet的比较失败。