2017-10-06 21 views
2

J'essaie de définir mes dépendances dans le fichier external-dependencies.xml dans l'extension Hybris. Le problème est qu'il suffit de charger les bibliothèques que j'ai spécifiées et de ne pas charger les dépendances avec lesquelles les bibliothèques doivent travailler au moment de l'exécution. Par exemple, Aixs2-kernel charge Axiom-api et impl et adb et ainsi de suite. Et dans un projet maven normal, je n'ai pas besoin de spécifier chacun d'entre eux un par un.Le logiciel hybris ne télécharge pas les dépendances transitives

Y a-t-il un moyen de faire comprendre à Hybris d'aller chercher le reste d'entre eux?

Répondre

3

SAP Hybris 6.4+

Oui, vous pouvez le faire en réécrivant le paramètre maven.download.options dans un fichier d'extension project.properties. Sa valeur par défaut est égale à:

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

Si vous ajoutez à votre poste project.properties la ligne:

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

plate-forme SAP Hybris téléchargera toutes les dépendances (également transitive). Bien sûr, cette modification ne fonctionnera que pour votre extension (s'il vous plaît ne pas modifier le contenu du fichier project.properties situé dans les extensions de base).


SAP Hybris 6.3 et plus

Exclusion des dépendances transitives est codé en dur dans le fichier hybris/bin/platform/resources/ant/mavenTasks.xml (macro updateLibFolder). La seule solution possible consiste à faire un correctif dans la plate-forme SAP Hybris. Vous pouvez modifier ce code:

<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> 

à:

<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> 

définir ensuite une propriété

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

dans le hybris/bin/platform/project.properties et enfin faire quelques pas de la solution pour 6.4+.


Attention: plate-forme SAP Hybris offre beaucoup de bibliothèques, donc probablement certaines de vos dépendances transitives sont déjà disponibles. C'est la raison pour laquelle le téléchargement des dépendances transitives est désactivé. Je pense que c'est une bonne idée de les spécifier manuellement au lieu de tout télécharger (vous éviterez les problèmes avec les différences de la version).

+0

Il semble que cette solution peut fonctionner pour 6.5 et dans 6.2 ce que j'ai essayé, cela n'a pas fonctionné. –

+1

J'ai ajouté une solution pour 6.2, mais l'idée la plus sûre est de spécifier manuellement toutes les dépendances transitives. – agabrys