2017-10-20 3 views
1

私は依存関係として特定のjarファイルを必要とするgradleビルドファイルを持っています。Gradle単一JAR AWS S3のIAMポリシーによる依存性

jarファイルはAWSのS3バケットにあります。

ジェンキンスでgradleビルドファイルが実行されていて、Jenkinsボックスには既にIAMポリシーがあり、S3からアップロードしてダウンロードすることができます(私はポリシーを制御しないので、 )。

maven { 
    url "s3://myBucket/myPath" 
    credentials(AwsCredentials) { 
     accessKey = awsCredentials.AWSAccessKeyId 
     secretKey = awsCredentials.AWSSecretKey 
    } 
} 

は現在、私はとてもとしてフェッチされるAWSの資格情報提供:

def fetchAwsCredentials = { 
    try { 
     return new InstanceProfileCredentialsProvider(false) 
    } catch (Exception e) { 
     println("unable to get credentials: " + e.getMessage()) 
    } 
} 
AWSCredentials awsCredentials = fetchAwsCredentials().getCredentials() 

をそして最後に、私がしようとし

私のGradleのビルドファイルで

私はそうのようなリポジトリとしてS3バケットを指定します依存関係のセクションで必要なJARファイルを次のように取得します。

testCompile files('myJarFile.jar') 

Grailsビルドを実行するJenkinsのジョブでは、JenkinsインスタンスからAWS資格情報を取得します(例外がキャッチされないため)が、JARファイルを取得しません。 存在しないJARファイルを依存関係として追加しようとしましたが、ビルドから見つからなかったエラーは表示されません。

私の主な質問は、アクセスキーと秘密キーではなくIAMポリシーを指定する方法です。私はGradleのドキュメントをチェックして、私はまったくの資格情報を指定しない場合、次のエラー以外のIAM認証をサポートについては何も、見ることができない。

S3リソースがAwsIamAutenticationを指定するか、いくつかのAwsCredentialsに

を提供しなければならないのいずれか

[012]

私はまた、なぜインスタンスの資格情報を使用しないと、なぜ私はそれが依存関係を見つけることができなかったビルド中にエラーを取得しない興味があります - 私が得るエラーは私ですJARファイルの依存関係がないためにテストが失敗します。

ありがとう、感謝します。 (私は認めざるを得ない気よりも地味ビューで...)

答えて

0

限り掲示した後、私はGradleのドキュメントで答えを見つけることができ

私はリポジトリとしてS3バケットを指定するが、その後を取得しようとしていることを信じていますファイルとしてのJARファイルの依存関係(testCompileファイル)は使用できません。

S3バケットはリポジトリとして定義されているため、完全なGAV記述が必要です。

したがって私はtestCompile "someGroup:someArtifact:someVersion @ jar"に依存関係を修正しました。

私のテストはまだ機能していませんが、それは別の問題だと思います。 JARファイルをコンソールにすべて印刷すると、JARファイルが依存関係として表示されます。

もし私が間違っていると思って、S3バケツからアーティファクトではなく単一のJARファイルを指定することができるのであれば、私はまだ興味があります。そうしないと、JARファイルを、避けようとしている。

関連する問題