我已经下载了用于将我的android studio 2.2.2库项目发布到亚马逊云的android aws文档。但是,这些步骤不适合我。
任何人都可以建议任何其他方法将Android工作室库项目上传到亚马逊云,并为Jcenter和Maven等依赖关系制作网址。
答案 0 :(得分:0)
如果您的图书馆是开源的,您可以免费使用https://jitpack.io
答案 1 :(得分:0)
一个简单的解决方案来托管私有Maven存储库而无需站起来管理服务器:
为了在Amazon 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存储桶,还可以获取并将对象放入存储桶的任何子目录中。根据亚马逊的文档,您可以根据需要对此进行限制。
如果您在一个存储桶中托管快照和版本(就像我一样),您可能希望将这些目录添加到存储桶的根目录中。另一个选择是有两个可以独立管理的存储桶,一个用于快照,另一个用于发布。
下一步是确保您为项目使用gradle 2.4。这可以通过编辑gradle-wrapper.properties文件,或者只是将以下代码段添加到根build.gradle文件,然后运行./gradlew包装器来完成。
task wrapper(type: Wrapper) {
gradleVersion = '2.4' }
现在,无论您通常在哪里设置您需要访问的存储库(我在根构建脚本中使用allprojects {}块),只需将您的Amazon S3存储桶添加为maven存储库。
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()
}
注意存储库的网址是s3://[bucket name]/[path]
。此外,由于这是一个私有存储库,我将我的AwsCredentials包含在maven块中。虽然您可以将实际的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
这就是在Amazon 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
快乐编码!!!干杯!!!