2017-10-05 14 views
1

Bintray에 여러 개의 Java 라이브러리를 게시 한 다음 Jcenter에 연결했습니다. 논쟁을 위해서, 라이브러리 'my.private : repo'중 하나를 호출하자. 이렇게하면 Gradle에서 라이브러리를 다음과 같이 사용할 수 있습니다.Jcenter 개인 호스팅 된 Repo에 대한 링크

... 
repositories { 
    jcenter() 
} 
... 
dependencies { 
... 
    implementation 'my.private:repo:1.0.0' 
... 
} 

우수.

내 비합리적인 두려움은 내 Bintray repos의 대역폭 또는 저장 용량 한도에 도달 할 것이므로 Bintray에서 repos를 호스트하기 위해 비용을 지불해야 할 것입니다 (현재 18 개의 repos가 열려 있습니다. 소스 계획). 내 질문은 내 자신의 개인 서버와 같은 다른 곳에 라이브러리를 호스팅 할 수 있는지 여부입니다. 그리고 나서 Jcenter가 리다이렉션을 수행하게하십시오. 나는 ...

repositories { 
    jcenter() 
    maven { url ... } 
} 

제가 개인 서버를 설정 한 다음 같은 것을 할 수 있다는 것을 충분히 알고하지만 난 정말이 일을하고 싶지 않아요. 가능한 한 많은 마찰을 빌드 프로세스에서 제거하고 싶습니다 ... 이는 리디렉션 (DNS와 같은)을 수행하는 단일 서버와 실제 호스팅을 수행하는 다른 서버에 의존한다는 것을 의미합니다.

라이브러리를 직접 호스팅 할 수 있으며 Jcenter에서 리디렉션을 수행하여 첫 번째 코드 스 니펫을 사용할 수 있습니다.

아이디어가 있으십니까?

두 가지 (리디렉션 및 호스팅)를 분리하는 것이 현명한 방법 인 것처럼 보이지만 Bintray가 본질적으로 다른 사람들에게 강요 할 수 있기 때문에 Bintray가 더 유익하다는 것을 이해합니다. 지불 할 메모리 또는 대역폭 제한 (단순히 리디렉션을 수행하는 경우 할 수없는).

답변

-1

저는 JCenter의 전문가가 아닙니다. 그러나 수십억의 보안 문제에 대해 이러한 기능을 제공 할 수는 없습니다.

Javen에 대한 "백엔드 저장소"가 될 수 있다고 상상해보십시오.이 저장소는 자체적으로 Maven 인공물을 호스트합니다. jcenter가 특정 인공물을 자신의 것임을 알지 못하는 경우에는 jcenter가 와서 직접 물어볼 것입니다. 이것은 사기꾼이 jCenter 백엔드가되어 모든 종류의 불쾌한 코드가 포함 된 "패치 된"라이브러리를 게시하는 훌륭한 방법입니다. 이 경우 JCenter는 제 3 자의 수정 된 (위험한) 유물을 배포하게됩니다.

특정 주소로 리디렉션을 요청하는 경우에도 보안 위협이 존재합니다. 당신의 서버가 해커에 의해 계속 인계 받아 수정 된 항아리가 공개 될 수 있습니다.

두 경우 모두 콘텐츠를 제어하지 않는 수정 된 jar 파일을 배포하는 것이 JCenter입니다.

- 빌드 작업 내의 인위적인 것을 maven central과 같은보다 내구성있는 저장소로 업로드하는 것이 좋습니다.

+0

나는 이것이 유효한 우려라고 생각하지 않습니다. Jcenter는 단일 사이트 만 등록하여 단일 패키지를 배포 할 수 있다는 제약을 부과 할 수 있습니다 (이미 두 명의 사용자가 동일한 패키지 이름으로 패키지를 가질 수 없다는 제약 조건을 적용합니다). 또한 GPG 키를 사용하여 사이트가 정당성을 입증하도록 강제 할 수 있습니다 (어쨌든 지금은 업로드에 사용합니다). 보안 문제가 없으면 모든 것을 지원할 수 있습니다. –