2014-07-23 4 views
0

슬링 모델의 프로젝트에 적절한 maven 종속성을 통합하는 데 약간의 문제가 있습니다. -Sling Models 프로젝트의 OSGI 종속성 문제 프로젝트

를 해결할 수없는

org.apache.sling.models.annotations, 버전 = [1.1,2가) : 내 번들을 배포 할 때

, 내가 해결할 수없는 다음과 같은 수입을 얻을

나는 나는 다음과 같은 종속성이 포함 믿습니다 : 내가 사용 시도

<dependency> 
    <groupId>org.apache.sling</groupId> 
    <artifactId>org.apache.sling.models.api</artifactId> 
</dependency> 
<dependency> 
    <groupId>org.apache.sling</groupId> 
    <artifactId>org.apache.sling.models.impl</artifactId> 
</dependency> 

:

<Embed-Transitive>true</Embed-Transitive> 
<Import-Package>*</Import-Package> 

내 번들 컴파일 지침,하지만 이것은 다른 의존성의 톤이 해결되지 않은 결과입니다.

분명히 나는 ​​정원 경로를 어딘가에 내려 갔다. 어떤 도움이라도 대단히 감사하겠습니다.

답변

1

org.apache.sling.models.api V1.0.2 번들은 다음과 같은 패키지를 내보낼 않습니다

javax.inject,version=0.0.0 
org.apache.sling.models.annotations,version=1.1.0 
org.apache.sling.models.annotations.injectorspecific,version=1.0.0 
org.apache.sling.models.spi,version=1.0.0 
org.apache.sling.models.spi.injectorspecific,version=1.0.0 

그래서 그 번들이 당신의 슬링 인스턴스 활성화되어있는 경우 org.apache.sling.models.annotations,version=[1.1,2) 가져 오기가 해결됩니다. 당신 받는다는 종속성에 번들을 추가하는 것은 실행중인 인스턴스를 설치하기에 충분하지 않을 수 있습니다

주, 무슨 중요한 것은 /system/console/bundles

+0

감사합니다. Bertrand. Spot on, API 번들이로드되지 않았습니다. 구성 지시 사항에서 Sling Models을 사용하여 번들에 *, org.apache.sling.models.api 태그를 표시했습니다. 그 밖의 내가 누락 될 수있는 것에 대한 조언? –

+0

models.api 패키지가 앞의 와일드 카드로 덮여 있기 때문에'Import-Package : *, org.apache.sling.models.api'는 확실히 중복됩니다. –

+0

번들이 Sling 인스턴스에로드되었는지 아닌지는 일반적으로 pom 의존성과 아무 관련이 없습니다. 일반적인 메커니즘을 통해 번들을로드해야합니다. 슬링 설치 프로그램이 활성화 된 경우 가장 간단한 방법은 컨텐츠 저장소의 설치 폴더에 번들을 추가하는 것입니다. –

1

Embed-Transitive 사용에서 본 models.api 번들은 거의 항상 끔찍한 활성화되어 있는지 여부입니다 생각. Maven에서 전체 전이 의존성 계층 구조를 가로 지르며 각각의 JAR 파일을 자신의 JAR 파일로 가져옵니다. 결과적으로 당신은 드래그 한 모든 속임수의 모든 패키지 종속성을 상속받습니다.

수입이 필요한 귀하의 번들 -이 경우 org.apache.sling.models.annotations - 가장 좋은 해결책은 다른 번들을 찾는 것입니다 이미 동일한 패키지를 내보낼 수 있습니다.

+0

팁 주셔서 감사. 그것을 명심하십시오. –