2012-03-08 2 views
2

Doxygen을 사용하여 팀의 프로젝트 소스 코드 (C#, Objective-C 및 Android/Java 프로젝트 있음)를 문서화했습니다. 각 프로젝트의 최신 트렁크 버전을 확인하고 명령 줄 Doxygen을 사용하여 HTML 문서 사이트를 생성하고 IIS 7이 이미 호스팅하는 로컬 파일 시스템의 디렉터리에 게시하는 Windows 배치 스크립트를 작성했습니다. 이 일괄 처리 스크립트는 완벽하게 작동하며 완전히 실행하려면 10 - 20 분이 걸리지 만 필요한 모든 작업을 수행합니다.Windows 작업 스케줄러로 시작할 때 Doxygen이 실행되지 않음

이제 프로세스를 자동화하여 매일 끝날 때마다 실행되도록 노력하고 있습니다. 배치 스크립트를 실행하는 예약 된 작업을 추가했습니다. 스크립트의 모든 부분은 Doxygen 부분을 제외하고는 작동합니다. 나는 시스템에 로그인하여 파일 시스템을보고 작업 사본이 문제없이 체크 아웃되고 정리 작업이 작동하는지 확인할 수 있습니다. 그러나 Doxygen HTML 출력을 생성하지 않습니다. Doxygen이 사용하도록 구성된 출력/대상 디렉토리는 매번 비어있게됩니다. 어떤 종류의 오류 메시지도 찾지 못했습니다 (예약 된 작업 및 eventvwr에서). 작업 스케줄러가 자체적으로 작업을 시작하도록할지 아니면 지금 작업을 실행하도록 지시할지 여부는 상관 없습니다. 앞서 말했듯이 배치 파일을 두 번 클릭하여 정상적으로 실행하면 모든 것이 잘 작동합니다.

프로세스는 우리의 개발 서버에서 수행됩니다.이 프로세스는 Windows Vista Business 32 비트를 실행하는 이전 Dell 워크 스테이션입니다. "로컬 서비스"와 내 Active Directory 도메인 계정 (이 서버의 관리자)을 시도했지만 여전히 작동하지 않지만 "시스템"계정에서 예약 된 작업을 실행하고 있습니다.

누구든지 Doxygen을 자동화하기 위해 작업 스케줄러를 성공적으로 사용 했습니까? 나는 내가 뭘 잘못하고 있는지 전혀 모른다. 다음에 무엇을 찾아야합니까?

필자의 배치 파일과 Doxygen 설정 파일의 약간 익명 버전을 필요할 경우 게시 할 수 있습니다.

답변

3

배치 파일에서 doxygen 출력의 리디렉션을 로그 파일에 추가하십시오. 그런 다음 스케줄러를 통해 실행하고 생성 된 출력을 확인하십시오. 그런 식으로 실행하면 doxygen에서 오류가 발생하면 로그 파일에 표시됩니다.

doxygen doxyfile > doxygen.log 2>&1 

는 또한 doxygen이 물건이있는 것보다 다른 디렉토리에서 호출 경우에도 박쥐 파일이 제대로 실행되는지 확인합니다. WINDOWS \ system32를 입력 \, 그래서이 시도 : 작업 스케줄러를 통해 실행하면, 나는 현재 디렉토리가 C있을 것이라고 생각

c:\windows\system32>c:\path\to\batchfile\mybatch.bat 

를하는 당신이 오류를 수정해야 경로 오류를 제공합니다.

+0

내가 제안한 것을 추가했고 doxygen.log 파일을 만들었지 만 작업이 완료되면 비어있었습니다. 나는 모든 것에 절대 파일 경로를 사용했기 때문에 작업 디렉토리가 중요하지 않다고 생각하지만, 다른 작업 디렉토리의 CMD에서 수동으로 실행 했으므로 제대로 작동했습니다. 이제 batchLog.log를 예약 된 작업의 매개 변수에 추가 했으므로 그 부분을 살펴 보겠습니다. –

+1

예제가 정상 출력으로 방향이 바뀌었지만 오류 출력은 여전히 ​​손실되었습니다. 위에서'2> & 1'을 추가하면 위의 내용을 볼 수 있습니다. 로그에는 stderr 출력도 포함됩니다. –

+0

고마워, 일하고있어! 문제는 doxygen의 설치 경로가 로그인 할 때 내 PATH의 일부이지만 작업 스케줄러에서 PATH의 일부가 아니기 때문에 프로그램을 찾지 못하는 것입니다. 나는 내 배치에서 doxygen.exe의 전체 경로로 바꿨고 지금은 작동합니다. –

관련 문제