2017-09-08 6 views
0

こんにちは、サードパーティのライブラリを追加するために、私はhttps://dev.liferay.com/develop/tutorials/-/knowledge_base/7-0/adding-third-party-libraries-to-a-module#embedding-libraries-in-a-moduleという記事に従っていました。 生成されたバンドルには、build.gradleで設定されているすべての依存関係を持つlibディレクトリがあります。 バンドルをデプロイすると、バンドルのステータスがインストールされます。私はこれは私がbuild.gradleに設定されている私の依存jarファイルのいずれかのためにも、推移的依存関係ではありません、以下のエラーLiferay Dxpバンドルに外部依存関係をバンドルする際の問題

org.osgi.framework.BundleException: Could not resolve module: com.test..api [564] 
    Unresolved requirement: Import-Package: com.ibm.wsdl.extensions.soap 

を取得していますバンドルを起動しようとすると あなたは私がこれを解決するために助けてください。

答えて

0

今すぐバンドルを開始できます。

build.gradleファイルに依存関係を設定し、gradleリフレッシュを実行すると、gradleはすべての依存関係(推移的な依存関係を含む)をダウンロードします。問題はこれらの推移的な依存関係にあります。 Gradleは推移的な依存関係をすべてダウンロードしていません。それはjarファイルが不足しているため、build.gradleで不足しているjarファイルを再度設定して、gradle refreshを行う必要があります。周り

作業欠落しているjarファイルを見つけるために:

build.gradleで依存関係を設定し、Gradleのリフレッシュおよびデプロイを行います。 gogoシェルに移動し、バンドルを確認します。 このバンドルはデプロイされ、インストールされた状態になります。 gogoシェルからバンドルを起動しようとします。 今度はUnresolved requirement:Import-Package: com.poi.extractor Googleのパッケージに似たエラーが表示され、Mavenリポジトリ内のそれぞれのjarファイルを見つけようとします。 build.gradleで新しいjarを設定します。 バンドルがアクティブになるまで同じプロセスを続行します。

0

次のスクリプトをbuild.gradeに追加して、OSGiモジュールにサードパーティの依存関係をすべて手動で追加するのではなく、それらを追加します。

bundle { 
def runtime = project.configurations.runtime 
runtime.resolve() 
instruction 'Bundle-ClassPath', '.' 
instruction 'Bundle-Activator', 'com.XXX.XXXXX.XXXX.ClassName' 
runtime.resolvedConfiguration.resolvedArtifacts.each { 
    def resrc = it.moduleVersion.id.name + '-' + 
      it.moduleVersion.id.version + '.jar'  
    instruction 'Bundle-ClassPath', 'META-INF/lib/' + resrc 
    instruction '-includeresource', 'META-INF/lib/' + resrc + '=' + it.file.path 
    } 
} 
関連する問題