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