2016-11-12 4 views
3

나는이 질문을 게시 할 정도로 검색을 시도했지만 만족스러운 답변을 찾지 못했습니다. 이에 대해 자세히 설명 할 수있는 의사가 있으면 알려주십시오.ivy xml의 의존성 태그에서 전 이적 필드를 사용하는 것은 무엇입니까?

나는 나의 아이비 XML이 라인을 가지고 :

<dependency org="org.apache.commons" name="commons-lang3" rev="3.3.2" transitive="false" /> 

내가이 전이 필드가 거기에 무엇인지 이해하지 않습니다. 나는 이미 프로젝트를 만들려고 노력 중이며 새 항아리를 추가해야했습니다. 그래서 나는 이미 그것과 같은 패턴을 따랐습니다. 이 "전 이적"필드를 제거하고 프로젝트의 아무 것도 변경하지 않았습니다. 그럼 나는 그것을 사실로 바꿨다. 다시 말하지만 변경은 없습니다. 이 용도는 무엇입니까? 특정 jar에 대한 소스, javadoc 및 jar를 모두 다운로드하는 이유는 무엇입니까? 제거하는 것이 내 프로젝트에 영향을주지 않으면 내 아이비 XML에서이 필드를 제거해도 괜찮습니까?

아파치 웹 사이트는 "의존성을 일시적으로 해결하는 것은 사실이며, 그렇지 않으면 거짓"이라고 말하면서 내 의구심을 해소하지 못합니다.

답변

2

깨끗한 작업 공간에서 시험해보십시오 (아직 의존성 없음). commons-lang3은 그 자체로 다른 라이브러리에 의존하지 않기 때문에 transtive이하는 것을 보는 좋은 예가 아닐 수도 있습니다. official document (하이라이트 광산)의 Example 섹션에서


:

<dependency org="foo" name="bar" revision="3.0" transitive="false" conf="default->@;runtime,test->runtime"/> 

개정 3.0 foo를 bar 모듈로부터의 종속성을 선언한다.

bar의 종속성은 transitive의 설정으로 인해에 포함되지 않습니다.

1

이 종속성을 일시적으로 해결하려면 transitive = "true"로 설정하고, 그렇지 않으면 거짓으로 설정하십시오. 기본값은 true입니다. <dependency org="org.hibernate" name="hibernate-core" rev="3.3.1.GA" transitive="true" /> 위의 종속성에 대한 ivy는 "hibernate-core"의 모든 종속 jar를 "transitive"로 설정하고 "true"로 설정합니다. false 인 경우 아이비는 해당 종속성을 다운로드하지 않습니다.