maven - hybris 的 maven 不下载传递依赖

标签 maven hybris

我正在尝试在 Hybris 扩展中的 external-dependencies.xml 中设置我的依赖项。问题是它只加载我在那里指定的库,而不加载库在运行时需要使用的依赖项。

例如 Aixs2-kernel 加载 Axiom-api 和 impl 和 adb 等等。而在一个普通的 maven 项目中,我不需要一一指定它们。

有什么方法可以让 Hybris 理解获取其余的内容吗?

最佳答案

SAP Hybris 6.4+

是的,您可以通过覆盖 maven.download.options 来做到这一点。扩展中的参数 project.properties文件。它的默认值等于:

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

如果您添加到您的扩展 project.properties该行:
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 平台上打补丁。您可以更改此代码:
<artifact:mvn pom="@{dependencyFile}" fork="true" failonerror="true" mavenVersion="3.2.5">
    <arg value="dependency:copy-dependencies" />
    <arg value="-DoutputDirectory=@{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 -DoutputDirectory=@{libfolder} ${maven.download.options}" />
    <jvmarg line="${env.MAVEN_OPTS} ${env.JAVA_OPTS}" />
</artifact:mvn>

接下来定义一个属性
maven.download.options=-DoverWriteReleases=true -DoverWriteSnapshots=true -DoverWriteIfNewer=true

hybris/bin/platform/project.properties最后从 6.4+ 的解决方案中执行步骤。

警告: SAP Hybris 平台提供了大量库,因此您的一些传递依赖项可能已经可用。这就是为什么禁用传递依赖项的下载的原因。我认为手动指定它们而不是下载所有内容是个好主意(您将避免版本差异的问题)。

关于maven - hybris 的 maven 不下载传递依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46599669/

相关文章:

e-commerce - Hybris 的租户范围是什么?

hybris - hmc 和后台的主要区别是什么?

hybris - 如何使用impex在Hybris中仅导出一种产品

java - 如何在Hybris中安装ywebfragmentcache?

java - 在插件中使用maven版本

java - 无法在 JDK7 上运行 Maven 3.6.3

java - 如何将 maven-surefire-plugin 执行拆分为两个单独的执行?

hybris - 如何在 hybris 中将本地主机重定向到我的店面?

eclipse - 无法执行目标 org.apache.maven.plugins :maven-war-plugin:2. 1:war - 无法复制资源

spring - 如何在 Spring Security 中集成 JCaptcha