Java 앱의 P4Package(Java)를 사용하여 Perforce 디렉터리 유효성 검사

StackOverflow https://stackoverflow.com/questions/84983

  •  01-07-2019
  •  | 
  •  

문제

내가 작성 중인 웹앱에서 사용자는 자신이 입력하는 노드에 대한 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를 사용해 보겠습니다.

http://tek42.com/p4java

P4Java는 훨씬 최신 버전이며 P4Package보다 훨씬 더 잘 작동한다는 것을 알았습니다.그것은 Hudson 프로젝트에서 사용되며 Fisheye 소스에서 본 적이 있지만 그들이 그것을 사용하고 있는지 여부는 확실하지 않습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top