2017-05-03 9 views
1

다른 팀에서받은 jar 파일이 있는데 AEM에서 사용해야합니다. 나는 AEM에서 항아리를 직접 사용할 수 없으므로 항아리를 링크 "https://helpx.adobe.com/experience-manager/kb/ConvertAJarIntoOsgiBundle.html"의 도움으로 번들로 변환했습니다. 이제 내 번들은 준비되어 있고 펠릭스 콘솔을 통해 AEM에 업로드되었습니다. 번들이 활성화되었습니다. 이제 Java 클래스에 번들로 들어있는 클래스를 사용해야합니다. 자바 클래스에서 그 bunlde를 사용하는 법. POM.xml에 번들을 추가해야합니까? 그렇다면 POM.xml에 해당 번들을 사용하여 코드가 복잡해질 수 있습니다.타사 JAR을 AEM으로 사용하는 방법?

답변

1

lib를 src/main/jcr_root/apps/your_app/libs/install 폴더에 넣을 수 있습니다 (경로는 프로젝트 구조에 따라 다름). 이제 Maven을 사용하여 AEM에 설치됩니다. 필요한 클래스를 가져 오려면

이 범위를 제공하는 사용, 우리가 Jedis lib 디렉토리에 대한 다음과 같은 구성 :

<dependency> 
    <groupId>org.apache.servicemix.bundles</groupId> 
    <artifactId>org.apache.servicemix.bundles.jedis</artifactId> 
    <version>2.7.3_1</version> 
    <scope>provided</scope> 
</dependency> 
0
이제

내 번들 준비와 펠릭스 콘솔을 통해 AEM에 업로드입니다

좋은 생각이 아닙니다. 예. Felix 콘솔에서 번들을 설치할 수 있지만 AIM의 번들 설치는 번들을 위해 JCR 저장소를 검색 할 수있는 Sling OSGi 설치 프로그램에서 관리해야합니다.

다른 응답에서 말했듯이 /apps 폴더 아래에 "install"이라는 폴더에 번들을 넣어야합니다.

나의 추천은 AEM 패키지에 번들을 embedd하는 AEM 주석을 생성하는 데 사용되는 메이븐 콘텐츠 패키지 플러그인 사용하는 것입니다 : 당신의 filter.xml에 /apps/example/install을 추가하는 것을 잊지, 또한

<build> 
    <plugins> 
     <plugin> 
      <groupId>com.day.jcr.vault</groupId> 
      <artifactId>content-package-maven-plugin</artifactId> 
      <configuration> 
       <failOnMissingEmbed>true</failOnMissingEmbed> 
       <filterSource>src/main/META-INF/vault/filter.xml</filterSource> 
       <filters combine.self="override" /> 
       <embeddeds> 
        <embedded> 
         <groupId>org.apache.sling</groupId> 
         <artifactId>org.apache.sling.models.validation-impl</artifactId> 
         <target>/apps/example/install</target> 
        </embedded> 
       </embeddeds> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

을 해달라고 .

content package plugin

에 대한 자세한 정보