2015-01-08 7 views
0

프로젝트 A 참조 프로젝트 B. 프로젝트 B에는 로컬 종속성이 포함되어 있습니다. 이 로컬 종속성은 불행하게도 버전 1.5의 net.java.dev.designgridlayout에 종속됩니다.전이 종속성 제외 작동하지 않음

프로젝트 A의 버전 1.11에서 net.java.dev.designgridlayout을 사용하려고하지만 종속성을 "덮어 쓸"수 없습니다. Eclipse는 항상 프로젝트 B의 종속성을 사용합니다.

로컬 종속성에서 1.5 버전을 제외하려고 시도했지만 작동하지 않습니다. 이상한 점은 Eclipse가 버전 1.11로 추가 된 클래스를 성공적으로 해결한다는 것입니다. 그러나 이미 존재하는 클래스의 경우, eclipse는 de.someCompany로부터의 전이 의존성으로부터 그것을 해결한다.

프로젝트 B :

<dependencies> <dependency> <groupId>de.someCompany</groupId> <artifactId>fs-client</artifactId> <version>5.1.209</version> <exclusions> <exclusion> <groupId>net.java.dev.designgridlayout</groupId> <artifactId>designgridlayout</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>net.java.dev.designgridlayout</groupId> <artifactId>designgridlayout</artifactId> <version>1.11</version> </dependency> </dependencies>

프로젝트 A는 : 우리는 심지어를 설치하려고

<dependencies> <dependency> <groupId>Project-B</groupId> <artifactId>Project-B</artifactId> <version>1503.01</version> </dependency> </dependencies>

는 또한 프로젝트 A의 1.11 의존성을 포함하도록 시도 DesignGridLayout V. 1.11에서 로컬 종속성을 변경하고 groupID 및 artifactId를 somethi로 변경합니다. 다르지만, 어떤 이유로 Eclipse에서 발견조차되지 않습니다. DesignGridLayout을 다른 groupId와 artifactId와 함께 포함시키는 것이 가능하면 가능할 것이라고 생각합니다.

mvn install:install-file -Dfile=lib\designgridlayout.jar -DgroupId=com.company.designgridlayout -DartifactId=design-grid-layout -Dversion=1.11 -DgeneratePom=true -Dpackaging=jar -DlocalRepositoryPath="%USERPROFILE%\.m2\repository"

답변

0

확실하지 -하지만 :

프로젝트 A는 자체에 대한 종속성이? 프로젝트 -b를 사용해야하지 않습니까?

그룹이나 이슈 ID를 변경하는 것은 좋지 않습니다. 더 이상이 아티팩트를 찾을 수 없습니다. 사용자 정의 버전을 수행하는 경우 버전 번호로 충분합니다.

자신의 pom에 종속성을 추가하면 groupId와 artifactId가 동일하기 때문에 이슈를 제외 할 필요가 없습니다. 자신의 pom에있는 버전이 프로젝트에서 승리합니다 - b. 프로젝트가 종속성을 다시 정의하면 버전이 이길 것입니다.

프로젝트에서 -을 수행하면 종속성의 출처를 확인할 수 있습니다.

이클립스의 경우 : 로컬 저장소를 인덱싱합니다. maven 설정에는 re-index 버튼이 있습니다. 따라서 수공예품을 찾기 위해 일식을 돕는 항아리를 수동으로 복사하면됩니다. 그러나이 해결 방법은 모든 시스템에서 수행해야합니다. 나는 그것을 해결책으로 간주하지 않을 것이다. 메이븐의 세계 아티팩트 - 해결은 인프라 문제이며 프로젝트마다 처리하면 안됩니다. 이 작업은 settings.xml을 통해 투명하게 이루어져야합니다.

+0

ops, 당연히 Project-B를 의미합니다.) –

+0

괜찮습니다. - 프로젝트 -A에서 당신의 모습은 "designgridlayout"입니까? 그게 무슨 버전의 maven 보여줍니까? 그리고 그것은 어디에서 왔는가? – wemu

관련 문제