2017-05-03 21 views
1

私は他のチームから受け取り、AEMで使う必要のあるjarファイルを持っています。私はJEMをAEMで直接使用することはできませんので、リンク "https://helpx.adobe.com/experience-manager/kb/ConvertAJarIntoOsgiBundle.html"の助けを借りてJarをバンドルに変換しました。今ではバンドルが準備され、フェリックスコンソールからAEMにアップロードされています。バンドルはアクティブです。今では私のJavaクラスにバンドルされているクラスを使用する必要があります。 Javaクラスでそのbunldeを使用する方法。 POM.xmlにバンドルを追加する必要がありますか?もしそうなら、そのバンドルをPOM.xmlにどのように使ってコードをコンパイルすることができますか?AEMにサードパーティのJARを使用するには?

答えて

1

libをsrc/main/jcr_root/apps/your_app/libs/installフォルダに置くことができます(パスはプロジェクトの構造によって異なります)。今は、MEMを使用して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コンソールからバンドルをインストールできますが、バンドルのためにJCRリポジトリをスキャンできるSling OSGiインストーラがAEMのインストールを管理するのが理想的です。

他の回答で述べたように、/appsフォルダの下の "install"という名前のフォルダにバンドルを置く必要があります。

私の推薦は、あなたのAEMパッケージにバンドルをembeddするAEMのコメントを生成するために使用されるMavenのコンテンツパッケージのプラグインを使用することです:あなた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

関連する問題