2012-11-09 4 views
0

docx4j를 사용하여 Word 파일을로드, 조작 및 저장합니다. 모든 것이 완벽하게 작동하지만 구현 방법을 모르는 한 가지가 있습니다. 내가 원하는 것은 버전 관리와 같은 것입니다. 즉, 문서를 저장하면이 문서의 이전 버전을 복구 할 수 있습니다 (예 : 델타 만 저장). 어쩌면 당신은 이전 버전의 파일로 돌아갈 수있는 SVN 또는 Git과 같은 것이어야한다고 설명 할 수 있습니다. 문제는 그 사실을 깨닫지 못할 가능성이 있다는 것입니다. 그래서 누구든지 나를 도울 수 있기를 바랍니다. 누구나 최소한 패키지 나 일반적으로 docx 파일이 아닌 파일로이를 수행 할 수있는 다른 것을 아는 것이 좋습니다. 도움 주셔서 감사합니다.자바 버전 컨트롤

편집 : 내 질문이 부정확하다는 점에 유감스럽게 생각합니다. 이것은 내 첫 게시물이었고 앞으로는 향상 될 것입니다.)

+2

왜 SVN 또는 Git을 사용하지 않으시겠습니까? –

+0

나는 왜 버전 컨트롤을 요구하는 게시물을 만든 다음 버전 컨트롤을 사용하지 않았는지를 알지 못한다. – djechlin

+0

자바에서 svn과 상호 작용하는 API가 있습니까? 왜냐하면 docx 파일을 저장하는 사용자는 백그라운드에서 어떤 일이 일어나는지 알지 못하기 때문입니다. svn을 사용하여 SQL에서 처리하는 것처럼 쉽게 처리 할 수있는 무언가가 있다면 매우 매력적입니다. –

답변

0

Git을 사용해야한다고 생각합니다. JavaGit이라는 Java API를 발견했습니다. 따라서 저장소에 쉽게 액세스 할 수 있습니다. Git을 사용하면 파일을 커밋하고 버전을 전환 할 수있는 로컬 리포지토리를 가질 수 있습니다. 필요한 경우 원격 위치로 데이터를 밀고 당길 수도 있습니다.

더 나은 사용은 Gian이 말한 것처럼 JGit입니다.

+0

고맙습니다. 나는 그것을 시도 할 것이다. 나는 자식을 안다.하지만 여기서 질문 할 때 나는 그렇게 간단하지 않다고 생각한다. –

+0

요즘에는 JavaGit 대신 JGit을 사용하지 않을 것이라고 확신합니다. 마지막 업데이트는 2008 년 알파 버전이었습니다. – Gian

+0

맞습니다. 대신 게시 한 것처럼 JGit을 사용해야하지만 수락 되었기 때문에이 대답을 삭제할 수 없습니다. – tbraun89

0

가장 간단한 방법은 도구 diffpatch을 사용하는 것입니다. 그것들은 CVS의 핵심으로 사용되었습니다. Windows가 사전 설치되어 있지 않은 곳에서 응용 프로그램을 실행하고 싶다고 가정합니다. 이 도구의 Windows 버전을 사용하는 것이 쉽고 편한 지 여부는 모르지만 사용자가 직접 익숙한 기능을 작성할 수는 있습니다. 여기에 파일 간의 차이점을 발견하고 패치하는 방법에 대한 아주 훌륭한 튜토리얼을 찾을 수 있습니다 : http://tuts.pinehead.tv/2012/09/18/introduction-using-diff-and-patch/ 기능을 아는 순간, 당신 자신의 것과 비슷한 것을 쉽게 작성할 수 있습니다.

5

JGit은 종속성이 거의없이 작동하는 Java의 Git 구현입니다. 비슷한 라이브러리가 SVN과 CVS를 위해 존재합니다. 양질의 솔루션이 있다는 가정하에 버전 관리 시스템을 개발하는 것은 거의 확실한 끔찍한 생각입니다! Jackrabbit

비슷한 질문이 이미 이전 요청을받은 : 당신이 문서 버전 관리에 대한 몇 가지 순수 자바 implementatoin을 원하는 경우

+0

힘내는 실제로 델타를하지 않는다는 것을 기억하십시오. 매번 완벽한 스냅 샷입니다. –

+0

* 꽤 정확하지 않습니다. 그것은 파일 당 델타를하지 않지만, 내가 아는 한 트리 델타를합니다. – Gian

+0

물론 이죠. 그렇습니다. –

1

, 어쩌면 당신은 갈 수 있습니다. 이 질문에 대한 1.st 대답 (올바른 것으로 표시)은 Jackrabbit에도 적용됩니다. 버전 관리 시스템을 데이터 백엔드로 사용

0

자신을 구현하는 것은 까다로운 일일 수 있으므로 권장하지 않습니다.

환경에 대해서는 잘 모릅니다. 그러나 기성품 버전 리포지토리를 사용할 수 있다면 많은 슬픔을 피할 수 있습니다. Git이나 SVN을 직접 사용해 볼 수 있습니다. 이것은 사용 사례에 가장 간단한 해결책입니다.

그러나 MS Office 파일에 대해 이야기하고 있으므로 어떤 형태의 엔터프라이즈 문서 관리 도구를 구현할 수 있습니다. 이 경우 JCR 사양은 버전 관리 및 기타 메타 데이터 기능을 사용하여 저장소의 파일에 대한 액세스를 제공하도록 설계되었습니다. 여기에 specification이 있습니다.

Apache Jackrabbit 프로젝트는 개발자 버전 Alfresco과 마찬가지로이 스펙의 오픈 소스 구현을 제공합니다.

올바른 솔루션을 선택하는 것은 사용자가이 파일로 수행하려고 시도하는 것, 배포 환경이 어떻게 보이는지 (Windows에서 Git을 호스트하려고하지 마십시오. k?), 현재 코드베이스를 사용자 정의하는 방법 (표준 Servlet 컨테이너? Java EE? home-rolled?)입니다.

행운을 빈다.

+0

JCR의 생각에 따르면, CMIS와 WebDAV/DeltaV (여러 전임자 중 한 명)는 말할 것도 없습니다. – JasonPlutext