Java 앱의 P4Package(Java)를 사용하여 Perforce 디렉터리 유효성 검사
문제
내가 작성 중인 웹앱에서 사용자는 자신이 입력하는 노드에 대한 Perforce 저장소의 경로를 입력해야 합니다.애플리케이션은 입력된 디렉터리가 저장소에 존재하는지 확인해야 합니다.
나는 P4Package(p4.jar) lib를 가지고 있고 이 디렉토리 유효성 검사를 제외한 거의 모든 것에 대해 작동할 만큼 올바르게 구성하고 있습니다.구성된 Env와 경로를 사용하여 DirEntry(p4.jar에서)를 생성 중인데 DirEntry.sync()를 호출하면 잘못된 명령이 실행됩니다.명령을 실행하려는 위치는 다음과 같습니다.
p4 [config info] dirs Directory_argument <-- dirs 명령을 사용하여 dir의 유효성을 검사합니다.
대신 다음을 발행합니다.
p4 [구성 정보] dirsdirectory_argument%1 <-- 관련없는 내용입니다% 1
디렉터리 끝에 %1이 없기 때문에 항상 실패합니다.
도움이 필요하세요?이 패키지를 사용하여 디렉토리가 존재하는지 확인하는 다른 방법이 있습니까?
해결책 3
따라서 제가 사용하고 있던 코드에는 변경을 하고 코드를 내 저장소에 체크인해야 하는 버그가 있었습니다.
그러나 그 이후로 Perforce는 훨씬 더 잘 작동하는 P4 클라이언트용 자체 Java 래퍼를 개발했습니다.나는 그것을 한번 시도해 볼 것입니다.
다른 팁
sync 명령에 디렉토리 항목 및 명령과 관련된 버그가 있는 것 같습니다.내 제안은 Java 라이브러리를 사용하려면 어쨌든 설정해야 하는 perforce 명령줄을 사용하여 명령을 직접 실행하는 것입니다.
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
대신 다른 라이브러리인 P4Java를 사용해 보겠습니다.
P4Java는 훨씬 최신 버전이며 P4Package보다 훨씬 더 잘 작동한다는 것을 알았습니다.그것은 Hudson 프로젝트에서 사용되며 Fisheye 소스에서 본 적이 있지만 그들이 그것을 사용하고 있는지 여부는 확실하지 않습니다.