cvsnt의 경우에는 cvs의 관리용 파일들 중 module을 확장한 module2 파일을 추가로 지원한다.
cvs에서의 module이 일반 모듈과 alias, amphersand module 등의 단순한 기능을 지원하는 반면, cvsnt의 module2는 아예 다른 모듈로부터 특정 디렉토리를 떼어와서 기존 디렉토리를 치환할 수도 있다.
물론 이에 대한 안정성 문제가 남아있기는 한데, 일단 시도는 해 보고 생각해볼 일이다.
가능하면 안정적인 cvs module을 이용하려고 했지만 개발소스를 모듈화 하기 위해서는 삽입 뿐 아니라 치환도 필요했다. :)
우선 기본 소스 트리 부터 정리가 필요하다. 모듈 서로간에는 의존 관계가 없도록 짜여져있어야 하고, 공통 분모를 뽑아내서 예쁘게 정돈해놓는다.
그 다음 모듈을 둘 디렉토리를 정하여 일정한 틀에 맞춰 차곡차곡 쌓아놓는다.
그러면 기본 소스 트리 정리는 끝난다.
다음으로는 CVSNT module2 파일을 생성한다. (도움말 파일을 참조)
베이스 모듈을 하나 정의해서 공통 분모만 남는 것으로 정의하고
다른 모듈들은 베이스 모듈에 자기 소스를 덧 대는 방식으로 정의한다.
그럼 module2 정의도 끝난다.
그럼 각각의 정의된 모듈별로 소스를 checkout 받아본다. 제대로 받아지면 일단 성공.
Spring OSGi 를 적용시켜보든지 아니면 일전에 작업해놓은 beanFactory를 이용하여 정적 모듈 처리할 것인지 고민해봐야겠다.