2013-01-31 31 views
16

Khi chạy mvn install trên một dự án đa mô đun cục bộ, nó xây dựng và cài đặt các tạo phẩm của dự án vào repo cục bộ. mvn clean dường như dọn dẹp các thư mục đích của dự án cụ thể của tôi.Làm thế nào để loại bỏ một hiện vật dự án từ repo maven địa phương?

Tôi nên sử dụng lệnh nào với maven để gỡ cài đặt các mô-đun dự án của mình khỏi repo cục bộ? ví dụ các dự án của tôi xuất ra foo-0.1.jar và bar-0.2.jar Tôi muốn những người bị xóa khỏi repo địa phương của tôi mà không phải vào đó và xóa chúng.

+0

Vâng, thường tôi chỉ ... xóa chúng khỏi hệ thống tập tin ... –

+0

có 17 trong số họ cho một dự án duy nhất chạy một kịch bản để xóa chúng là gây phiền nhiễu, vì vậy tôi thà maven làm điều đó kể từ nó biết cái gì ở đó. – ams

+0

Nếu bạn dự án đầu ra foo-0.1.jar là từ maven điểm xem một bản phát hành sẽ không bao giờ bị xóa khỏi kho lưu trữ cục bộ. Vì vậy, câu hỏi đầu tiên: Tại sao bạn muốn xóa chúng? – khmarbaise

Trả lời

4

Bạn có thể tẩy các hiện vật từ kho lưu trữ cục bộ của mình, nhưng tại sao bạn lại muốn làm điều này? Ngoài ra bạn có thể làm điều đó thông qua maven-dependency-plugin:

này sẽ thanh trừng tất cả bởi dự án và sự phụ thuộc vật

mvn dependency:purge-local-repository 

này có thể bị ảnh hưởng bởi đối số dòng lệnh bổ sung (xem tài liệu) để biết thêm chi tiết.

+2

Tôi có 'mvn install'ed một số hiện vật. Sau khi chạy 'mvn dependency: purge-local-repository', các dự án khác phụ thuộc vào tạo phẩm đó vẫn đang xây dựng. Họ nhận được đồ tạo tác đó từ đâu nếu nó đã bị xóa khỏi repo địa phương? – Honza

+0

'phụ thuộc: purge-local-repository' sẽ * không * từ xa tạo tác được chỉ định bởi chính pom hiện tại. Nó chỉ là 'tải lại' tất cả các phụ thuộc. – isnot2bad

2

Tốt nhất là triển khai chiến lược phát hành, tức là miễn là các hiện vật đang được phát triển bổ sung phiên bản với SNAPSHOT. Maven sau đó tự động cập nhật các tạo tác trong kho lưu trữ cục bộ khi bạn chạy cài đặt. Khi bạn đã hoàn tất việc phát triển, bạn xóa SNAPSHOT và phát hành phiên bản (tức là thông qua triển khai). Nếu cần phát triển thêm, bạn có thể tăng số phiên bản và nối lại với SNAPSHOT.

+0

Đây là một chiến lược đặc biệt tồi tệ sẽ ngăn cản bạn phát hiện các phụ thuộc theo chu kỳ hoặc hiện vật bị mất tích cho đến khi quá muộn. – marcv81

+0

Làm thế nào? Nghe có vẻ như tôi như MrsTang đang đề xuất việc sử dụng phiên bản tiêu chuẩn của maven ... sử dụng -SNAPSHOT trong phiên bản trong quá trình phát triển và sau đó loại bỏ điều đó khi đến lúc phát hành. Mặc dù tôi không chắc rằng nó thực sự giải quyết được thách thức mà người dùng đang gặp phải khi tải xuống các phụ thuộc, tôi không làm theo cách sử dụng phiên bản tiêu chuẩn sẽ ngăn bạn phát hiện các phụ thuộc theo chu kỳ hoặc các tạo phẩm bị thiếu. – tbradt

37
mvn build-helper:remove-project-artifact 
+1

chỉ xóa dự án hiện tại khỏi kho lưu trữ! sử dụng: điều hướng vào dự án và chạy lệnh – tbraun

+1

Hoạt động người đàn ông, cảm ơn! – JRichardsz

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