使用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来源中已经看到过,但是我不确定他们是否在使用它。