我已经下载了android aws文档,用于将我的android studio 2.2.2库项目发布到amazon cloud。但是,这些步骤不适合我。
有没有人可以推荐其他的方法来上传Android studio库项目到Amazon cloud,并为依赖项创建url,比如Jcenter和Maven。
发布于 2016-12-13 21:20:55
托管私有Maven存储库的简单解决方案,无需安装和管理服务器:
为了在亚马逊S3上托管您的资产,您首先必须设置一个经过身份验证的存储桶作为存储库。这超出了本文的范围,但亚马逊有一些优秀的documentation详细介绍了如何做到这一点。
创建存储桶后,您将需要添加存储桶策略,以确保您的身份验证用户可以访问存储桶中创建的所有文件。
{
"Version": "2012-10-17",
"Id": "Policy1428433847297",
"Statement": [
{
"Sid": "Stmt1428433844452",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::1234567890:user/maven-user"
},
"Action": "s3:ListBucket",
"Resource": "arn:aws:s3:::pixite-maven"
},
{
"Sid": "Stmt1428433844452",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::1234567890:user/maven-user"
},
"Action": [
"s3:GetObject",
"s3:PutObject"
],
"Resource": "arn:aws:s3:::pixite-maven/*"
}
]
}请注意,我的组有权列出pixite-maven存储桶,并有权在存储桶的任何子目录中获取和放置对象。根据Amazon的文档,您可以随心所欲地限制它。
如果您在单个存储桶中同时托管快照和版本(就像我一样),那么您可能希望将这些目录添加到存储桶的根目录中。另一种选择是有两个可以独立管理的存储桶,一个用于快照,另一个用于发布。
下一步是确保您的项目使用的是gradle 2.4。这可以通过编辑gradle-wrapper.properties文件,或者简单地将以下代码片段添加到根build.gradle文件并运行./gradlew wrapper来完成。
task wrapper(type: Wrapper) {
gradleVersion = '2.4' }现在,无论您通常在何处设置需要访问的存储库(我在根构建脚本中使用了一个allprojects {}块),只需添加您的Amazon存储桶作为S3存储库即可。
repositories {
maven {
url "s3://pixite-maven/releases"
credentials(AwsCredentials) {
accessKey AWS_ACCESS_KEY
secretKey AWS_SECRET_KEY
}
}
maven {
url "s3://pixite-maven/snapshots"
credentials(AwsCredentials) {
accessKey AWS_ACCESS_KEY
secretKey AWS_SECRET_KEY
}
}
mavenLocal()
jcenter()
}请注意存储库的url是如何为s3://[bucket name]/[path]的。另外,因为这是一个私有存储库,所以我在maven块中包含了我的AwsCredentials。虽然您可以将实际的AWS_ACCESS_KEY和AWS_SECRET_KEY直接放入构建文件中,但不要!您的构建文件不应该包含凭据,因为这样您就无法真正管理访问权限。这些值就是我的构建文件中的值,允许它从我的主目录中的特定于用户的gradle.properties文件中读取。下面是我用~/.gradle/gradle.properties:设置实际值的地方
AWS_ACCESS_KEY=my_aws_access_key
AWS_SECRET_KEY=my_super_secret_key这就是在亚马逊S3上托管您的依赖项所需的全部内容,为您提供了一个负担得起的、访问受控的内部maven托管选项,而无需管理开销。
注意::不是开源库的解决方案
BinTray (jcenter)和Maven Central是发布开放源代码的地方。这使得您的库的用户可以轻松地访问,而不需要在整个项目中添加自定义存储库。只有当您需要一个经过身份验证的存储库,或者您需要在没有源代码(ala Fabric)的情况下分发库时,这才是解决方案。
有关这方面的更多信息,请查看以下链接:
An S3 repository can be configured to authenticate using AWS's EC2 instance metadata.
S3 Repositories can be configured with credentials providers
Setting Up & Publishing Private Amazon S3 Maven Repository Android Library
编码快乐!干杯!
发布于 2016-12-08 03:41:39
如果你的库是开源的,你可以免费使用https://jitpack.io
https://stackoverflow.com/questions/40904238
复制相似问题