2016-12-29 4 views
4

현재 기존 응용 프로그램을 Jigsaw 모듈로 마이그레이션하려고 테스트 중입니다. 내 모듈 중 하나는 Groovy Plugin과 함께 ElasticSearch를 사용합니다.자동 모듈로 분할 패키지를 처리하려면 어떻게해야합니까?

  • org.elasticsearch : elasticsearch
  • 는 org.elasticsearch.module :

불행하게도 랭 - 그루비, 그들은 분할 패키지를 공유하므로 mvn install 저를 제공합니다

는 X 읽기 lang.groovy와 elasticsearch의 org.elasticsearch.script.groovy 패키지

은 설명자의 각 필수 모듈에 대해 한 번씩 사용됩니다. 여기서 x는 각 모듈의 이름입니다.

새로운 elasticsearch 버전은 Java 9가 최종적으로 완성 될 때까지 분할 패키지를 제거한다고 가정하지만, 일반적으로 기존 종속성에서 분할 패키지를 처리하는 방법이 있습니까?

나는 모듈 경로 대신 클래스 패스에 넣을 수 있기를 바랬지 만, this conversation on the mailing list을 읽은 후에는 Maven 컴파일러에 이렇게 할 수있는 방법이 없다. 받는다는 - 컴파일러 플러그인 3.6.0 - - jdk9 - 개 + 149 - 받는다는 3.3.9


좀 더 테스트 후 elasticsearch 2.3.3

답변

1

, 나는 몇 가지 옵션이 있다고 생각 많은 (그러나 전부는 아니지만) 타사 분할 패키지 상황을 해결해야합니다.

  1. 정리 의존성 - 어쩌면 종속성이 실제로 필요하지 않거나 새로운 (이상 별개의) JAR로 대체 될 수
  2. 재구성, 각각이 모두 하나에서 패키지를 읽는 두 개의 모듈로 자신의 모듈 타사 모듈 (가능/합리적 일 경우)
  3. 타사 모듈 중 하나 또는 둘 모두를 간단한 모듈로 랩핑합니다.이 모듈은 실제로 모듈에 필요한 패키지 만 명시 적으로 내보내지만 아무것도 수행하지 않습니다.

상황에 따라 이러한 옵션 중 하나가 분할 패키지 문제를 해결하는 데 적합 할 수 있습니다. 그러나 그들 중 어느 누구도 일관된 코드 조각이 실제로 분할 된 패키지의 두 부분에서 클래스에 액세스해야하는 상황을 처리 할 수 ​​없습니다.

관련 문제