2011-08-29 20 views
6

Tôi đang sử dụng Maven 3. Tôi đang cố gắng triển khai tạo phẩm của bên thứ ba tới một kho lưu trữ từ xa nhưng đang gặp lỗi lạ. Lệnh tôi đang sử dụng để triển khai làMaven: Sự cố khi triển khai JAR của bên thứ ba tới một kho lưu trữ từ xa

mvn deploy:deploy-file -DgroupId=com.myco.util.ant \ 
    -DartifactId=selenium-ant-task \ 
    -Dversion=1.4 \ 
    -Dpackaging=jar \ 
    -Dfile=/Users/davea/.m2/repository/com/myco/util/ant/selenium-ant-task/1.4/selenium-ant-task-1.4.jar \ 
    -DrepositoryId=sonatype-nexus \ 
    -Durl=http://sonatype.myco.com/nexus/content/repositories/releases 

Và lỗi tôi nhận được khi tôi chạy lệnh này là

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.5:deploy-file (default-cli) on project maven-selenium-plugin: The parameters 'url' for goal org.apache.maven.plugins:maven-deploy-plugin:2.5:deploy-file are missing or invalid -> [Help 1] 
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. 
[ERROR] Re-run Maven using the -X switch to enable full debug logging. 

gì đang xảy ra ở đây? Tôi đã định nghĩa repositoryId của tôi, "ssonatype-nexus" trong tệp ~/.m2/settings.xml của tôi và đã xác minh thông tin xác thực trong đó là chính xác.

Cảm ơn bạn đã trợ giúp, - Dave

+1

'Chạy lại Maven bằng cách sử dụng chuyển đổi -X để cho phép ghi nhật ký gỡ lỗi đầy đủ.' Có thể giúp bạn sửa lỗi của mình :) – Jacob

Trả lời

1

Dường như url của bạn được định dạng không chính xác.

Hãy thử:

-Durl = file: // path_to_m2_repo

See here for more.

Chỉnh sửa: Lưu ý, URL dành cho repo địa phương trong trường hợp này. Maven nên triển khai cho Nexus dựa trên POM và -DrepositoryId.

+0

Định dạng URL là chính xác - mặc dù hướng dẫn sử dụng sử dụng làm ví dụ, bạn không cần triển khai đến một vị trí tập tin (mà vẫn sẽ được coi là một repo từ xa, ngay cả khi nó được lưu trữ trên một hệ thống tập tin). –

+0

Xin chào, tôi không hiểu những gì bạn đang đề xuất. Tôi đã thay đổi URL của mình thành "-Durl = file: /// path/to/jar/I/want/to/deploy" nhưng tôi vẫn gặp lỗi. Bạn có thể cho một ví dụ bằng cách sử dụng đường dẫn đến tệp mà tôi muốn triển khai và id kho lưu trữ không? – Dave

+0

Từ những gì tôi hiểu từ tài liệu đó là Durl sẽ là đường dẫn đến kho lưu trữ cục bộ của bạn (hoặc nơi tệp nằm), không phải tệp bạn muốn triển khai, đó là những gì -Dfile dành cho. -DrepositoryID phải khớp với ID bạn chỉ định trong nằm trong tệp POM. Tôi sẽ giả định điều này sẽ đẩy Dfile đã cho repo m2 của bạn (Durl) và triển khai nó vào DrepositoryID được định nghĩa trong POM, trong trường hợp này là Nexus của bạn. Nếu điều đó không hiệu quả, tôi muốn xem các thuộc tính của bạn từ POM của bạn. – Tony

3

deploy:deploy-file không có ý định chạy trong thư mục có tệp pom.xml - bạn nên chạy nó ở một nơi khác. Nếu bạn muốn một POM cụ thể được tải lên với nó, đừng quên đối số -DpomFile làm mặc định là tạo một đối số cơ bản. Tuy nhiên, tôi nhận thấy rằng bạn đang triển khai một tệp từ kho lưu trữ cục bộ - nếu điều này được đặt ở đó bằng xây dựng Maven, bạn chắc chắn sẽ triển khai dự án đó, sử dụng phần tử <distributionManagement> và giai đoạn vòng đời deploy.

Các vấn đề liên quan