2016-04-05 16 views
1

Grailsプラグイン(最終的には.jar)をプライベートMavenレポに公開しているときに、次のエラーが発生しています。資格情報が有効であることを複数回確認しました。GradleでプライベートMavenに.jarを公開する

資格情報がすべて(無断401)で送信されていないかのように思える:

私は(関連部分のみ)は、次のしている私のbuild.gradleで
Could not transfer artifact com.blah.plugins:blahCommonPlugin:pom:0.1 from/to remote (http://maven.blah.com): Could not write to resource 'com/blah/plugins/blahCommonPlugin/0.1/blahCommonPlugin-0.1.pom' 
:publishMavenJavaPublicationToBlahRepository FAILED 
:publishMavenJavaPublicationToBlahRepository (Thread[Daemon worker,5,main]) completed. Took 2.788 secs. 

FAILURE: Build failed with an exception. 

* What went wrong: 
Execution failed for task ':publishMavenJavaPublicationToBlahRepository'. 
> Failed to publish publication 'mavenJava' to repository 'blah' 
    > Failed to deploy artifacts: Could not transfer artifact com.blah.plugins:blahCommonPlugin:jar:0.1 from/to remote (http://maven.blah.com): Could not write to resource 'com/blah/plugins/blahCommonPlugin/0.1/blahCommonPlugin-0.1.jar' 

* Try: 
Run with --stacktrace option to get the stack trace. Run with --debug option to get more log output. 

BUILD FAILED 

Total time: 5.634 secs 
Stopped 0 compiler daemon(s). 
Could not PUT 'http://maven.blah.com/com/blah/plugins/blahCommonPlugin/0.1/blahCommonPlugin-0.1.jar'. Received status code 401 from server: Unauthorized 

version "0.1" 
group "com.blah.plugins" 

publishing { 
    publications { 
     mavenJava(MavenPublication) { 
      from components.java 
     } 
    } 

    repositories { 
     maven { 
      name "blah" 
      url "http://maven.blah.com" 
     } 
    } 
} 

//Not sure if I need this 
grailsPublish { 
    repo = 'blah' 
    githubSlug = 'blah/blahCommonPlugin' 
    title = "blahCommonPlugin" 
    desc = "blahcommon plugin" 
    developers = [erikahlswede:"Erik Ahlswede"] 
} 

は、その後、私は私のsettings.xmlでこれを持っている(〜/ .m2/settings.xmlの)

<settings> 
    <servers> 
    <server> 
     <id>blah</id> 
     <username>un</username> 
     <password>pass</password> 
    </server> 
    </servers> 
</settings> 

私は何が欠けているかもしれないか考えていますか?

EDIT 1

私は今のデバッグするのsettings.xmlを削除しました。私が使用しています:

repositories { 
     maven { 
      name "snapshots" 
      url "http://maven.blah.com/" 
      credentials { 
       username 'blahUser' 
       password 'blahPassword' 
      } 
      authentication { 
       basic(BasicAuthentication) 
       digest(DigestAuthentication) 
      } 
     } 
} 

そして、詳細な出力を持つが、私が参照してください。

Publishing to repository org.gradle.api.internal.[email protected]457d1e38 
Using Credentials [username: blahUser] for authenticating against 'null:-1' using Digest 
Using Credentials [username: blahUser] for authenticating against 'null:-1' using Basic 
Deploying to http://maven.blah.com/ 
Downloading: com/blah/plugins/blahCommonPlugin/0.1-SNAPSHOT/maven-metadata.xml from repository remote at http://maven.blah.com/ 
Constructing external resource: http://maven.blah.com/com/blah/plugins/blahCommonPlugin/0.1-SNAPSHOT/maven-metadata.xml 
Performing HTTP GET: http://maven.blah.com/com/blah/plugins/blahCommonPlugin/0.1-SNAPSHOT/maven-metadata.xml 
Connection request: [route: {}->http://maven.blah.com][total kept alive: 0; route allocated: 0 of 5; total allocated: 0 of 10] 
Connection leased: [id: 0][route: {}->http://maven.blah.com][total kept alive: 0; route allocated: 1 of 5; total allocated: 1 of 10] 
Connecting to maven.blah.com:80 
CookieSpec selected: best-match 
Auth cache not set in the context 
Target auth state: UNCHALLENGED 
Proxy auth state: UNCHALLENGED 
Attempt 1 to execute request 
Sending request: GET /com/blah/plugins/blahCommonPlugin/0.1-SNAPSHOT/maven-metadata.xml HTTP/1.1 
Receiving response: HTTP/1.1 404 Not Found 
Connection can be kept alive indefinitely 
Connection [id: 0][route: {}->http://maven.blah.com] can be kept alive indefinitely 
Connection released: [id: 0][route: {}->http://maven.blah.com][total kept alive: 1; route allocated: 1 of 5; total allocated: 1 of 10] 
Resource missing. [HTTP GET: http://maven.blah.com/com/blah/plugins/blahCommonPlugin/0.1-SNAPSHOT/maven-metadata.xml] 
Could not find metadata com.blah.plugins:blahCommonPlugin:0.1-SNAPSHOT/maven-metadata.xml in remote (http://maven.blah.com/) 
Uploading: com/blah/plugins/blahCommonPlugin/0.1-SNAPSHOT/blahCommonPlugin-0.1-20160405.174228-1.jar to repository remote at http://maven.blah.com/ 
Attempting to put resource http://maven.blah.com/com/blah/plugins/blahCommonPlugin/0.1-SNAPSHOT/blahCommonPlugin-0.1-20160405.174228-1.jar. 
Upload http://maven.blah.com/com/blah/plugins/blahCommonPlugin/0.1-SNAPSHOT/blahCommonPlugin-0.1-20160405.174228-1.jar 
Performing HTTP PUT: http://maven.blah.com/com/blah/plugins/blahCommonPlugin/0.1-SNAPSHOT/blahCommonPlugin-0.1-20160405.174228-1.jar 
Connection request: [route: {}->http://maven.blah.com][total kept alive: 1; route allocated: 1 of 5; total allocated: 1 of 10] 
Connection leased: [id: 0][route: {}->http://maven.blah.com][total kept alive: 0; route allocated: 1 of 5; total allocated: 1 of 10] 
Stale connection check 
CookieSpec selected: best-match 
Auth cache not set in the context 
Target auth state: UNCHALLENGED 
Proxy auth state: UNCHALLENGED 
Attempt 1 to execute request 
Sending request: PUT /com/blah/plugins/blahCommonPlugin/0.1-SNAPSHOT/blahCommonPlugin-0.1-20160405.174228-1.jar HTTP/1.1 
Receiving response: HTTP/1.1 401 Unauthorized 
Connection can be kept alive indefinitely 
Authentication required 
maven.blah.com:80 requested authentication 
Authorization challenge processed 
Authentication failed 

EDITしようとしました2

:ここ

Using Credentials [username: blahUser] for authenticating against 'null:-1' using Digest 
Using Credentials [username: blahUser] for authenticating against 'null:-1' using Basic 

は、関連するログの残りの部分であります要求をうまくカール...していないようです:

$ curl --basic -u username:password http://maven.blah.com/com/blah/plugins/blahCommonPlugin/test/api-1.0-20160128.114425-1.jar --request PUT --data blahCommonPlugin-0.1-SNAPSHOT.jar 
<html> 
<head><title>401 Authorization Required</title></head> 
<body bgcolor="white"> 
<center><h1>401 Authorization Required</h1></center> 
<hr><center>nginx/1.6.3</center> 
</body> 
</html> 

mavenサーバーのnginx設定が見つかりました。これが正しく構成されているかどうかは不明です。これは大丈夫に見えるん?:

# Allow only these methods (GET and HEAD are allowed by default) 
dav_methods PUT MKCOL; 
dav_access user:rw group:rw all:r; 
create_full_put_path on; 
... 
# For all plugins and directories 
location/{ 
    # Allow files listing for repositories 
    autoindex on; 

    limit_except PUT MKCOL { 
     # For GET and HEAD request use this file for username/password who have only download permissions from Maven server 
     auth_basic_user_file /etc/nginx/.htpasswd/downloaders; 
    } 
} 
+0

それは 'Gradleのようになります。 'は資格情報の設定に関与しません。あなたの設定のユーザー名/パスワードがどれくらい確実に使われていますか? – Armaiti

+0

編集が追加されました。詳細ログには、「nullを使用して認証するための資格情報[username:blahUser]」が表示されます。 –

答えて

1

これは、我々は資格情報を使用してレポMavenのために公開を扱っている方法です。

apply plugin: 'maven' 

uploadArchives { 
    repositories { 
     mavenDeployer { 
      repository(url: "http://repo"){ 
       authentication(userName: "yankee", password: "doodle") 
      } 
      snapshotRepository(url: "http://repo-snapshotRepository"){ 
       authentication(userName: "yankee", password: "doodle") 
      } 
     } 
    } 
} 

さらなる詳細はここで見つけることができた: https://docs.gradle.org/current/userguide/maven_plugin.html

+0

実際にPUT要求に対して別のユーザーが存在するため、認証が失敗しました。すべてがうまくいくことを望む; D –

関連する問題