Gradle Jcenter链接到私人托管回购
我已经将几个java库发布到Bintray,然后将它们链接到Jcenter。为了便于讨论,让我们将其中一个库称为“my.private:repo”。这使我能够像这样使用Gradle中的库:Gradle Jcenter链接到私人托管回购,gradle,bintray,jcenter,Gradle,Bintray,Jcenter,我已经将几个java库发布到Bintray,然后将它们链接到Jcenter。为了便于讨论,让我们将其中一个库称为“my.private:repo”。这使我能够像这样使用Gradle中的库: ... repositories { jcenter() } ... dependencies { ... implementation 'my.private:repo:1.0.0' ... } 好极了 现在,我可能有一种不合理的担心,那就是我将达到Bintray repos的带宽或存储限
...
repositories {
jcenter()
}
...
dependencies {
...
implementation 'my.private:repo:1.0.0'
...
}
好极了
现在,我可能有一种不合理的担心,那就是我将达到Bintray repos的带宽或存储限制,因此我将不得不开始付费在Bintray上托管repos。目前,我在开源计划中有18个repos。我的问题是,是否可以将库托管在其他地方,比如我自己的私有服务器,然后让Jcenter简单地执行重定向。我完全知道我可以设置一个私有服务器,然后做类似的事情
repositories {
jcenter()
maven { url ... }
}
但我真的不想这么做。我想从构建过程中尽可能地消除摩擦…这意味着依赖一台服务器来执行DNS重定向,另一台服务器来执行实际托管
那么,是否有可能自己托管这些库,并让Jcenter进行重定向,这样我就可以继续使用第一个代码段
想法
另一方面,将重定向和托管这两件事解耦似乎是明智的,但我明白Bintray将它们结合起来更有利,因为它们可以迫使所有脱离内存或带宽限制的人付费,而如果他们只是简单地进行重定向,他们就无法付费。我不是JCenter方面的专家。然而,他们不可能提供这样的功能,因为这将给他们带来数十亿的安全问题 想象一下,您将能够成为JCenter的后端存储库,它将自己托管maven artefacts。如果jcenter自己不知道某个特定的人工制品,它会来询问您。这将是欺诈者成为jcenter后端并发布包含任何恶意代码的修补库的绝佳载体。在这种情况下,JCenter将成为来自第三方的修改过的、可能是危险的工件的分发者 如果您只是请求重定向到特定地址,那么安全威胁也会存在。你的服务器仍可能被黑客接管,修改后的jar可能会被发布 在这两种情况下,JCenter分发可能修改过的jar文件,几乎不控制内容
作为一种选择——考虑将你的人工作品上传到一个更持久的Maven存储库中,比如Maven Central.< /P>我不认为这是一个有效的问题。Jcenter可以施加一个约束,即只有一个站点可以注册以分发单个包。他们已经实施了一个约束,即两个用户不能拥有具有相同包名的包。此外,他们还可以强制网站使用GPG密钥来验证他们的合法性,而他们现在使用GPG密钥进行上传。因此,一切似乎都准备就绪,他们可以在没有安全顾虑的情况下支持这一点。