2014-06-19 3 views
0

환경을 구축 할 때 개발자가 intellij의 n-member 팀에서 개발 에이전트로 gradle을 사용하여 java (spring mvc) 웹 응용 프로그램을 개발했습니다. 이 프로젝트는 같은 팀에서 개발중인 종속성을 가지고 있습니다. 의존성은 spring mvc app에 의해 읽혀지는 저장소 (repository)에 공개됩니다. 무슨 일이 일어날 때마다 의존성 코드가 변경 될 때마다 최신 버전의 종속성 코드를 포함하도록 스프링 응용 프로그램 코드를 새로 고쳐야합니다. 그래서 문제는 종속성 코드에서 런타임에 코드 스왑을 수행하여 디버그 세션에 영향을 주어야한다는 것입니다. JRebel이 의존성 코드에서 수행해야하는 경우를 제외하고는 거의 비슷합니다.Gradle : 종속성에 대한 핫 배포 적용

모든 의견을 보내 주시면 대단히 감사하겠습니다.

P.S- 나는이 기술 스택을 통해 이것을 달성 할 수있는 방법이있을 수 있기 때문에 gradled 및 jrebel를 태그 지정했습니다.

+1

왜 이러한 길이가됩니까? 종속 프로젝트를 업데이트하고 재배포하기위한 스크립트를 만드는 것이 더 쉽지 않습니까? – Bart

+0

글쎄, 그게 할 수 있습니다. 하지만 요점은 디버깅하는 동안 종속성 코드를 수정하고 바꿀 수 있다는 것입니다. 나는 이것이 달성 될 수있는 스크립트로 생각하지 않는다. 내가 틀렸어. 제발 조언. – Aspirant

+0

나는 당신이 묻고있는 와트를 할 수있는 도구를 모르고 있습니다. 응용 프로그램을 다시 실행하는 것이 많은가요? 의존성 버전에'-SNAPSHOT' 접미어가 있으면 maven은 항상 저장소에서 최신 버전을 가져 오거나 다운로드합니다. – Bart

답변

1

JRebel은 매우 효율적이지는 않지만 단지를 모니터링 할 수 있습니다. rebel.xml 구성 파일에서 파일 시스템의 종속성 위치를 가리키는 <jar> 태그를 지정할 수 있습니다.

보다 나은 접근 방법은 실제로 소스를 사용하여 컴파일 된 클래스가있는 위치를 가리키는 rebel.xml의 종속성을 배포 한 다음 소스에서와 마찬가지로 종속성을 사용하여 버전에서 풀/업데이트를 수행하는 것입니다. 필요할 때 제어하고 변경 사항을 컴파일합니다. 컴파일러가 증분이면 변경된 클래스 만 컴파일되고 JRebel은 한 번에 너무 많은 클래스를로드 할 필요가 없으며 변경 사항 만로드합니다.

+0

Anton, 나는 당신의 의견에 부분적으로 동의합니다. rebel.xml을 통해 종속성을 배포하는 것은 이제 두 곳에서 종속성 배포의 책임을 나누는 것처럼 보입니다. 그것은 확실히 할 수있는 것 같습니다. – Aspirant

관련 문제