Maven 2에서는 모든 것에 대한 거울을 지정할 수 있지만 장애 조치가 리포지토리를 지시하는 데 허용됩니까?

StackOverflow https://stackoverflow.com/questions/2471031

  •  20-09-2019
  •  | 
  •  

문제

나는 다음과 같은 Maven 거울을 설정하려는 매력의 일부를 이해합니다.

<mirror>
  <id>nexus</id>
  <name>Maven Repository</name>
  <mirrorOf>*</mirrorOf>
  <url>http://server:8081/nexus/content/groups/public</url>
</mirror>

... 그게 그게 선적 서류 비치 상태 :

Maven은 모든 저장소 요청을 미러링하여 단일 저장소를 사용하도록 강요 할 수 있습니다.

그러나 이것은 또한 * 거울 각 워크 스테이션을 설정합니다 ~ 해야 하다 거울을 통과해야합니까?

Nexus가 종속성이나 플러그인을 해결할 수없는 경우 각 워크 스테이션이 장애 조치를하고 공개 리포지토리에 직접 연결하기를 원하기 때문에 묻습니다. (완벽한 세상에서, 각 개발자는 필요에 따라 추가 프록시 저장소를 추가하는 데 필요한 액세스 권한이 있습니다. 그러나 때로는 액세스 할 수 없습니다. 때로는 Nexus 서버가 줄어들고 때로는 Java 힙 오류가 발생합니다.)

Maven 2에서 "거울이지만 공개 리포지토리에 직접 연결"장애 조치 구성이 가능합니까? Maven 3에 있을까요?

도움이 되었습니까?

해결책

Maven 2에서는 불가능합니다. 미래에는 Maven 3에서 가능할 수 있습니다. 우리는 또한 Nexus 에이 가능성을 역동적으로 프록시 아티팩트에 추가하는 것을 고려했습니다. 결론적으로 대부분의 조직은 개발자가 사용하는 프록시 저장소를 제어하기를 원 하므로이 기능은 저장소 관리자에서 매우 인기가있는 것으로 판명되었습니다.

마찬가지로, 개발자 머신을 직접 리포지토리 관리자에게 직접 액세스하지 못하도록하는 것은 바람직하지 않습니다. 그런 다음 프록시 캐싱, 공유, 필터링 등의 모든 이점을 잃게됩니다.

다른 팁

아니요, 장애 조치 모드가 없습니다. 당신은 일부 리포지토리를 거울로가는 것을 제외 할 수 있습니다. <mirrorOf>*,!repository</mirrorOf>, 또는 두 가지를 가질 수 있습니다 settings.xml 다르게 행동하고 사용하는 파일 --settings 필요한 경우.

한 가지 대답 (내 질문에 암시 적)은 디자인으로 불가능하다는 것입니다. 끝의 의견 이 티켓 Jason Van Zyl은 다음을 나타냅니다

실제 거울은 의도적으로 확인되지 않습니다. 요즘 저장소 관리자가 일하는 방식은 우리 가이 일을 시작하면 심각하게 깨질 것입니다.

이 구성도 가능합니다. 그러나 프로젝트가 계층 적으로 크고 모든 어린이가 동일한 부모를 가지고 있지 않다면이 섹션을 POM에 복사해야합니다. 이는이 가짜 센트럴을 선언하는 프로젝트 이외의 모든 곳에서, 즉 기본적으로 살펴볼 수있는 기본 리포지토리입니다. 귀하의 요청은 Project POM의 적절한 Maven Central 또는 다른 선언 된 리포지토리로 이동합니다. 캐치 : 플러그인 X를 사용하고 실제로는 알지 못할 수도 있습니다. 그리고 플러그인 X는 아티팩트 y에 따라 다르며, 자체 POM에서 Repo가 선언 한 것입니다 ... >>> 연결점

또 다른 대안은 프로젝트에 대한 추가 settings.xml을 갖는 것입니다.

세 번째 대안은 다음과 같이 Global settings.xml을 갖고 필요할 때만 -p nexus를 활성화하고 가짜 중앙 저장소가 없으면 놀랍게도 작동합니다.

<settings>
    <mirrors>
        <mirror>
            <id>nexus</id>
            <name>nexus</name>
            <url>http://localhost:8082/nexus-webapp-1.6.0/content/groups/public</url>
            <mirrorOf>*</mirrorOf>
        </mirror>
    </mirrors>

    <profiles>
        <profile>
            <id>nexus</id>

                <repositories>
                <repository>
                    <id>central</id>
                    <url>http://central</url>
                    <releases>
                        <enabled>false</enabled>
                    </releases>
                    <snapshots>
                        <enabled>false</enabled>
                    </snapshots>
                </repository>
            </repositories>
            <pluginRepositories>
                <pluginRepository>
                    <id>central</id>
                    <url>http://central</url>
                    <releases>
                        <enabled>false</enabled>
                    </releases>
                    <snapshots>
                        <enabled>false</enabled>
                    </snapshots>
                </pluginRepository>
            </pluginRepositories>  
        </profile>
    </profiles>
    <activeProfiles>

    </activeProfiles>
</settings>

다른 탭/창에서 이미지를 엽니 다.enter image description here

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top