2014-03-06 5 views
0

두 개의 별도 웹 프로젝트 - w1 & w2로 배포되는 앱이 있습니다. 부모 프로젝트 P는 w1을 포함합니다 & w2프로젝트 간 종속성 만들기

w2의 코드를 사용하는 코드가 추가되었으므로이 코드를 사용하려면 w1의 클래스 경로에 w2를 추가해야합니다. 각 웹 프로젝트는 독립적이어야하므로이 종속성을 만드는 것은 나쁜 습관입니까? 또한, 이것은 maven 프로젝트이므로을 위해서는 w2를 빌드하기위한 전쟁이 dependecy로 만들어 져야합니다. 나는 이것이 프로젝트들 간의 종속성 관리에 관한 많은 이슈들을 여는 것이라고 생각한다. 공유 할 코드가 들어있는 별도의 jar 프로젝트를 만든 다음 종속성으로 추가해야한다고 생각합니다.

+0

_ 각 웹 프로젝트는 스스로 포함해야합니다. 나는 그 방법이 두렵다. – xyz

+0

Maven 오버레이를 확인하면 공유 웹 리소스를 병합하는 데 도움이 될 수있다. 그러나 이것은 다소 해킹입니다. 실제로 웹 앱은 자체 포함되어야합니다. – setec

+0

w1에서 w2 로의 직접적인 종속성을 사용하여 그렇게 작동하지 않습니다. 전쟁 의존성은 자동으로 오버레이로 적용됩니다 (w1은 w2의 모든 것을 포함합니다). 그러나 이는 패키지 단계에 적용됩니다. 따라서 컴파일하는 동안 w2의 코드가 컴파일러에 표시되지 않습니다. 즉 w1은 컴파일되지 않습니다. 의존성으로 별도의 항아리를 사용하십시오. – blackbuild

답변

1

예, 저는 이것을 나쁜 습관이라고 생각합니다. 런타임에 전쟁의 클래스 로더를 적절하게 분리하는 컨테이너에서 w1 프로젝트에 오류가 표시됩니다. 두 가지 독립적 인 전쟁을 만들고 코드/기능을 재사용하고 싶다면 그 기능을 포함하는 항아리에 빌드 된 세 번째 프로젝트를 만드는 것이 좋습니다. 두 웹 프로젝트는 그 라이브러리를 종속물로 포함 할 수 있습니다.

1

예. w2에 w1에 필요한 코드 구성 요소가 있거나 그 반대 인 경우에는 w1 & w2가 종속 된 별도의 "공통"프로젝트에 해당 구성 요소를 추출해야합니다. 특히 다른 의존성도 있기 때문에 (스프링 등)