使用Java应用程序中的P4Package(Java)验证Perforce目录
时间:2020-03-05 18:59:17 来源:igfitidea点击:
在我正在编写的Web应用程序中,应该让用户在Perforce存储库中输入他们要输入的节点的路径。该应用程序应该验证存储库中输入的目录。
我已经有了P4Package(p4.jar)库,并且对其进行了足够正确的配置,使其可以用于几乎所有内容,除了此目录验证。我正在使用配置的Env和路径创建DirEntry(从p4.jar),但是当我调用DirEntry.sync()时,它会发出不正确的命令。我希望它发出命令的位置:
p4 [config info] dirs directory_argument <-使用dirs命令验证目录
相反,它发出:
p4 [config info] dirs directory_argument%1 <-注意无关的%1
总是失败,因为所有目录的末尾都没有%1.
有什么帮助吗?有没有其他方法可以使用此软件包检查目录是否存在?
解决方案
回答
听起来sync命令有一个与目录条目和命令有关的错误。我的建议是使用perforce命令行自己滚动命令,因为无论如何都必须设置perforce才能使用java库。
Process p = Runtime.getRuntime().exec("p4 dirs " + directory_argument); BufferedReader stdOut = new BufferedReader(new InputReader(p.InputStream())); //Read the output of the command and process appropriately after this
回答
因此,我使用的代码确实存在一个错误,要求我进行更改并将代码检入到存储库中。
但是,从那时起,Perforce为P4客户端提供了自己的Java包装器,效果更好。我试一试。
回答
我会尝试使用另一个库P4Java:
http://tek42.com/p4java
P4Java较新,我发现它比P4Package更好。不过,它在Hudson项目中使用过,而我在Fisheye来源中已经看到过,但是我不确定他们是否在使用它。