2014-07-03 35 views
7

Tôi đang cố gắng di chuyển từ việc sử dụng Ivy sang sử dụng trình giải quyết Aether trong dự án Grails 2.4.Cách để ngoại giao thông tin đăng nhập Maven trong Grails 2.4

Vấn đề tôi đang gặp phải liên quan đến việc bên ngoài thông tin đăng nhập. Thông tin liên quan đến điều này có thể được tìm thấy trong hướng dẫn sử dụng Grails tại đây: http://grails.org/doc/latest/guide/conf.html#dependencyRepositories

Dường như không có cách nào để ghi lại thông tin đăng nhập để sử dụng Maven theo cách bạn có thể với Ivy.

Với Ivy tôi có thể đặt một cái gì đó như thế này vào .grails/settings.groovy tập tin của tôi:

grails.project.ivy.authentication = { 
    credentials { 
     realm = "My Repo" 
     host = "repo.mycustomrepo.com" 
     username = "user" 
     password = "password" 
    } 
} 

Để sử dụng Aether, tôi buộc phải đặt các chứng chỉ chặn trực tiếp trong BuildConfig.groovy tôi như vậy:

repositories { 
    inherits true // Whether to inherit repository definitions from plugins 

    grailsPlugins() 
    grailsHome() 
    mavenLocal() 
    grailsCentral() 
    mavenCentral() 
    mavenRepo("http://repo.mycustomrepo.com") { 
     //Add authentication details to repository connection 
     auth([ 
     username: 'user', 
     password: 'password' 
     ]) 
    } 
} 

Thật không may điều này thực sự là vấn đề đối với tôi, như trong tổ chức của tôi, chúng tôi sử dụng Artifactory được cấu hình để sử dụng thông tin đăng nhập LDAP của chúng tôi. Đây là vấn đề bởi vì tôi không muốn cam kết thông tin đăng nhập của mình trong kiểm soát nguồn.

Có giải pháp không có giấy tờ nào cho việc này hay không Grails không hỗ trợ nó?

+0

bạn đã thử thiết lập Maven? http://maven.apache.org/settings.html#Servers –

+0

Tôi vừa thử điều đó, nhưng nó không giúp ích gì. Có thể tôi chưa thiết lập chính xác. Tôi đã tạo một tệp settings.xml trong '$ {user.home} /. M2/settings.xml'. Tôi đã thêm một phần các máy chủ với ' myRepo myusername mypassword' và sau đó tôi thêm vào BuildConfig.groovy tôi 'mavenRepo (id: 'myRepo', url: "https://myRepo.com") ' –

Trả lời

9

Xác định repo của bạn với một id:

mavenRepo(id:'myrepo', url:"http://localhost:8085/artifactory/libs-release-local/") 

Sau đó, xác định thông tin của bạn trong ~/.grails/settings.groovy sử dụng trước đây quy định id:

grails.project.dependency.authentication = { 
    credentials { 
    id = "myrepo" 
    username = "foo" 
    password = "bar" 
    } 
} 
Các vấn đề liên quan