하나의 Maven 프로젝트에 "코어"와 "웹"피스가 있습니다. 나는 그것을 여러 모듈로 변환하려고 시도하고있다.Maven 다중 모듈 프로젝트의 자동 종속성
"웹"패키지를 가져 와서 새 프로젝트에 넣었습니다. 의존성으로 핵심 프로젝트를 추가했으며 Eclipse 내에서 클래스를 참조 할 수 있습니다. "코어"프로젝트는 빌드 할 때 "웹"프로젝트의 WEB-INF\lib
에 정확하게 나타납니다.
"핵심"프로젝트의 클래스가 "웹"프로젝트의 @Autowired
인 경우 문제가 발생합니다.
이 특별한 경우에는 "핵심"의 서비스 클래스를 "웹"프로젝트의 웹 서비스 클래스 중 하나에 autowiring하고 있습니다. 핵심 서비스가있는 패키지를 내 "웹"응용 프로그램 구성의 내 context:component-scan
에 추가하면 해당 서비스를 찾는다. 그러나 서비스는 내가 참조하는 엔티티 관리자 팩토리를 찾는 엔티티를 참조하는 저장소를 참조합니다. "핵심"프로젝트에서 내 응용 프로그램 컨텍스트로 구성되었습니다.
그래서 "핵심"프로젝트의 context:component-scan
이 어쩌면 발생하지 않는 것 같습니까? 또는 픽업 된 클래스가 "웹"프로젝트에서 사용 가능하지 않을 수 있습니까?
전 다중 모듈 프로젝트에 완전히 익숙합니다. 누군가가 저를 올바른 방향으로 시작하여이 문제를 해결할 수 있다면 크게 고맙겠습니다.
이클립스에서 실행중인 플러그인 실행과 함께 m2e를 사용하고 있습니다. 그러나 명령 줄에서 mvn jetty:run
을 수행 할 때 동일한 문제가있는 것 같습니다.
답장을 보내 주셔서 감사합니다. 이것은 작동하는 것 같습니다. 여러분이 신경 쓸 필요가 없다면 더 빠른 질문을 하나드립니다 ...이 모듈화 유형에 일반적으로 받아 들여지는 해결책입니까? 필자가 요구하는 유일한 이유는 필자가 "핵심"프로젝트를 배포하는 경우 누군가 제대로 작동하게하려면 응용 프로그램 컨텍스트의 이름을 적어도 알고 있어야하기 때문입니다. 이 모든 것이 내부적이기 때문에 문제는 아니지만 적어도 취약한 방식으로하고 싶습니다. 다른 모듈에로드해야하는 응용 프로그램 컨텍스트에 대한 특정 명명 규칙이 있습니까? – Luke
응용 프로그램 컨텍스트를 내보낼 지 확실하지 않습니다. 핵심 라이브러리에 의해 노출 된 주요 서비스로 이러한 컨텍스트를 작성하고 소비자가 처리하도록하는 방법에 대한 좋은 예를 제공하는 것이 좋습니다. 이것은 분명히 문서화 된 API와 함께 내 생각에 트릭을 수행해야합니다. –
좋아요! 다시 한번 감사드립니다. – Luke