2016-07-23 12 views
0

Artifactory Pro 버전 3.6.0을 사용하고 있습니다. 나는 다른 원격 repos (https://repo1.maven.org/maven2/..처럼)에 프록시를 구성한 원격 저장소 (캐시)를 가지고있다. 또한 모든 원격 저장소를 포함하는 가상 저장소가 구성되어있다. (예 : http://mydomain/artifactory/remote-repos/..)Artifactory virtual repo : 일부 파일을 다운로드 할 수 없습니다 (클라이언트에 0 바이트가 보내지 만 예상되는 XYZ 바이트)

Artifactory 서버를 다시 시작한 후 일부 Maven 플러그인 관련 POM 파일 (종속성)을 Artifactory에서 다운로드하거나 가져올 수 없기 때문에 일부 Maven 빌드가 실패하기 시작했음을 알게되었습니다.

파일을 가상 저장소 URL을 통해 다운로드 할 수 없지만 원격 저장소 URL을 통해 다운로드 할 수 있다는 사실을 확인했습니다.

예를 들어

:

  • 원격 REPO 직접 URL을 사용하여 (일) : http://mydomain/artifactory/받는다는 - 아파치 캐시를 /org/apache/maven/maven-parent/26/maven-parent-26.pom
  • 가상의 repo URL을 (가공하지 않은) 사용 : http://mydomain/artifactory/원격의 repos /org/apache/maven/maven-parent/26/maven-parent-26.pom

(그냥 몇 가지 1 2 maven plu 진 관련 POM 파일을 다운로드 할 수 없습니다. . 괜찮 다운로드 한 파일의 나머지)

는 나는 그것이 Settings.XML의 파일 (미러링 중앙 캐시)

내가 다른 조사를 많이 했어요 구성하는 방법이기 때문에 가상의 repo URL을 사용해야합니다 :

  1. Artifactory 프록시 캐시와 모든 빌드 서버 maven 캐시를 삭제했습니다. 다음은 ... 다시 캐시에
  2. 는 Artifactory 로그 (모두 정보 및 디버그 수준)

    바라보며 파일을 강제

    [DEBUG] (osjdDataSourceUtils : 110) - 데이터 소스

    에서 가져 오기 JDBC 연결

    [DEBUG] (oasduJdbcHelper : 98) - 쿼리가 521032 나노에서 반환되었습니다. 'SELECT * FROM nodes where repo ='remote-repos 'AND node_path ='org/apache/maven/maven-parent/26 'AND node_name = 'maven-parent-26.pom' '

    [DEBUG] (osjdD (admin) - 원격 접속 : org/apache/maven/maven-parent/26/maven-parent-26.pom (12) 요청 된 리소스를 파일로 확인했습니다.

    [DEBUG] (oarRepoRequestContext : 71) - 8b83e9a2 get admin remote-repos : org/apache/maven/maven-parent/26/maven-parent-26.pom 요청한 리소스는 다음과 같습니다. 일반 유물 - '40751'

    [DEBUG] (osbfsDefaultListableBeanFactory : 523) 길이가 일반적인 콘텐츠 핸들을 사용 - 싱글 톤 빈의 캐시 된 인스턴스를 반환 'pluginsAddonDefaultImpl'

    [DEBUG] (o.s.b.f.s.DefaultListableBeanFactory : 523) - 싱글 톤 Bean의 캐시 된 인스턴스 'org.artifactory.addon을 반환하는 중입니다.plugin.PluginsAddonImpl # 0 '

    [DEBUG (oarRepoRequestContext : 71) - 관리 원격 REPOS 얻을 8b83e9a2 : 모든 BeforeDownload 사용자 실행 조직/아파치/받는다는/받는다는 부모/26/받는다는 부모 - 26.pom을 존재할 수있는 플러그인

    [DEBUG (oarRepoRequestContext : 71) - : 조직/아파치/받는다는/받는다는 부모/26/받는다는 부모 - 26.pom는

    처리 선택한 컨텐츠와 응답 관리 원격 REPOS 얻을 8b83e9a2

    [DEBUG] (oarRequestResponseHelper : 71) - 'remote-repos : org/apache/maven/maven-parent/26/maven-parent-26.pom'에 대한 바디 응답을 보냅니다. 원래 자원 크기 : 40751, 실제 크기 : 40751.

    [WARN] (o.a.r.ArtifactoryResponseBase : 57) - 0 바이트는 클라이언트로 보내지 만 예상되는 40751 바이트입니다.

    [DEBUG (oarRepoRequestContext : 71) - 관리 원격 REPOS 얻을 8b83e9a2 : 조직/아파치/받는다는/받는다는 부모/26/받는다는 부모 - 26.pom 요청이 성공

    ...

  3. Artifactory에 파일이 있는지 확인 : 존재하고 원격 repo URL (가상 저장소 URL 아님)을 사용하여 다운로드 할 수 있습니다. 위 참조.

  4. 는 (아무 문제를 다시 시작) 번 이상의 Artifactory 몇 가지 새로운 Artifactory 가상의 repo를 만든
  5. 를 다시 시작 시도하고 새로운 URL을 사용하기 시작하지만, 같은 일이 이전

누구보다 일이 가상 repo URL을 사용하여 Artifactory에서 일부 파일 (예 : maven-parent-26.pom)을 다운로드 할 수없는 이유는 무엇입니까?

감사합니다.

답변

0

이것은 실제로 이상하게 보입니다. 가상 저장소에서 include/exclude patterns을 구성했을 때 파일을 가상으로 액세스 할 수 없게하는 원인이 될 수 있다고 생각할 수있는 유일한 방법이 있습니다. 과 같이 가상의 repo에서 한 번

curl -uadmin:password http://localhost:8081/artifactory/my-remote/path/to/pom 

과 : 은 어쩌면 당신은 직접과 같이 원격의 repo에서 한 번 컬 사용하여 분해하고, 치어 파일을 해결하기 위해 시도하여 시작할 수 있습니다

curl -uadmin:password http://localhost:8081/artifactory/my-virtual/path/to/pom 

것이 확인 처음에는이 하나의 원격 저장소 만 가상 저장소에 포함시킵니다.

+0

또한 Maven Central 이외의 다른 저장소를 사용해보십시오. JCenter에서도 같은 일이 발생합니까? – JBaruch

+0

가상 repo 포함 패턴이 설정됩니다 : **/*; exclude 패턴은 아무것도 비워 두지 않으므로 아무것도 필터링하지 않습니다. 그러나 실제로 나는 오늘 파일을 다운로드하려고했는데 (전에는 다운로드 할 수 없었습니다) 문제가 없었습니다. 너무 이상해. 어쩌면 artifactory가 주말에 문제를 해결 한 내부 인덱싱/정리 작업을했을 수도 있습니다. 전혀 모르겠군요 : –

+0

@JBaruch 다른 모든 repo 유형 (pypi, npm, ...)이 올바르게 작동하고있었습니다. 내가 가진 유일한 문제는 maven 유형의 repos에서 파일 몇 개 (2-3)입니다. –