2017-10-06 14 views
2

Hybris拡張のexternal-dependencies.xmlで自分の依存関係を設定しようとしています。問題は、そこで指定したライブラリをロードするだけであり、ライブラリが実行時に動作する必要がある依存関係をロードしないことです。hybrisのMavenは推移的な依存関係をダウンロードしません

たとえば、Aixs2カーネルはAxiom-apiとimplとadbなどを読み込みます。通常のMavenプロジェクトでは、それぞれを個別に指定する必要はありません。

Hybrisが残りの部分をフェッチする方法はありますか?

答えて

3

SAP HYBRIS 6.4+

はい、あなたは拡張子project.propertiesファイルにmaven.download.optionsパラメータを上書きすることで、これをで行うことができます。あなたの拡張機能project.propertiesに行を追加する場合

-DoverWriteReleases=true -DoverWriteSnapshots=true -DoverWriteIfNewer=true -DexcludeTransitive=true 

:これはデフォルト値が等しいのです

maven.download.options=-DoverWriteReleases=true -DoverWriteSnapshots=true -DoverWriteIfNewer=true 

SAP HYBRISプラットフォームは(も推移)すべての依存関係をダウンロードします。もちろん、この変更はあなたの拡張機能に対してのみ機能します(コアエクステンションにあるproject.propertiesファイルの内容を変更しないでください)。


SAP HYBRIS 6.3及び推移的依存関係の古い

除外はhybris/bin/platform/resources/ant/mavenTasks.xmlファイル(マクロupdateLibFolder)にハードコードされています。唯一可能な解決策は、SAP Hybrisプラットフォームでパッチを適用することです。次hybris/bin/platform/project.properties

maven.download.options=-DoverWriteReleases=true -DoverWriteSnapshots=true -DoverWriteIfNewer=true 

プロパティを定義し、最終的に6.4+のための溶液からの手順を行う

<artifact:mvn pom="@{dependencyFile}" fork="true" failonerror="true" mavenVersion="3.2.5"> 
    <arg line="dependency:copy-dependencies [email protected]{libfolder} ${maven.download.options}" /> 
    <jvmarg line="${env.MAVEN_OPTS} ${env.JAVA_OPTS}" /> 
</artifact:mvn> 

:に

<artifact:mvn pom="@{dependencyFile}" fork="true" failonerror="true" mavenVersion="3.2.5"> 
    <arg value="dependency:copy-dependencies" /> 
    <arg value="[email protected]{libfolder}" /> 
    <arg value="-DoverWriteReleases=true" /> 
    <arg value="-DoverWriteSnapshots=true" /> 
    <arg value="-DoverWriteIfNewer=true" /> 
    <arg value="-DexcludeTransitive=true" /> 
</artifact:mvn> 

:あなたはこのコードを変更することができます。


警告: SAP HYBRISプラットフォームライブラリの多くを提供しますので、おそらくあなたの推移依存関係のいくつかは、すでに用意されています。これが推移的な依存関係のダウンロードが無効になる理由です。私はすべてをダウンロードするのではなく手動で指定することをお勧めします(バージョンの違いによる問題は避けてください)。

+0

この解決策は6.5と6.2でうまくいきましたが、私が試したものは何も動作しませんでした。 –

+1

私は6.2のソリューションを追加しましたが、最も安全なアイデアはすべての推移依存を手動で指定することです。 – agabrys

関連する問題