2017-10-06 8 views
2

Hybris 확장의 external-dependencies.xml에서 내 종속성을 설정하려고합니다. 문제는 단지 거기에 지정된 라이브러리를로드하고 런타임에 라이브러리가 작업해야하는 종속성을로드하지 않는다는 것입니다.hybris의 종속 변수가 전이 종속성을 다운로드하지 않습니다.

예를 들어 Aixs2-kernel은 Axiom-api 및 impl 및 adb 등을로드합니다. 그리고 정상적인 Maven 프로젝트에서 나는 각각을 하나씩 지정할 필요가 없다.

Hybris가 나머지를 가져 오는 것을 이해하도록 할 방법이 있습니까?

답변

3

SAP Hybris 6.4+

예, 확장 project.properties 파일에 maven.download.options 매개 변수를 덮어 쓰기하여이를에서 할 수 있습니다.

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

SAP Hybris 플랫폼 (트랜) 모든 종속성을 다운로드합니다 : 당신이 당신의 확장 project.properties 라인에 추가하는 경우

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

: 그것은 기본 값은 동일합니다. 물론 이번 변경은 귀하의 연장에만 적용됩니다 (코어 확장에 위치한 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 

을 정의

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

마지막 6.4+위한 솔루션에서 단계를 수행합니다

<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