Tôi đang viết một ứng dụng yêu cầu tôi tải xuống một lọ được cung cấp cho nhóm mavens groupid/artifactid/phiên bản.Tôi làm cách nào để tải xuống một bình bằng cách sử dụng maven theo chương trình
Tôi hiện bắt đầu với
public Model pomToModel(String pomUrl) throws Exception {
URL url = new URL(pomUrl);
InputStream stream = url.openStream();
try {
Model model = new MavenXpp3Reader().read(stream);
return model;
} finally {
stream.close();
}
}
Vì vậy, cho url của POM, bây giờ tôi có đối tượng maven mẫu đại diện cho nó. Điều này dường như hoạt động tốt.
Những gì tôi muốn biết là hai điều:
- tìm url của vật jar rằng mô hình đại diện trong kho maven rằng các plugin maven sẽ sử dụng
- cho các mô hình, tìm tệp đại diện cho bình trong kho lưu trữ cục bộ
Tôi đã có giải pháp chất lượng kém: tôi truy cập mvnrepository.com mã hóa url theo cách thủ công và tôi sử dụng ~/.m2/repository làm tiền tố cho tệp. Tôi rõ ràng có thể cải thiện giải pháp này, nhưng tôi sẽ kết thúc kém sao chép mã được kiểm tra tốt và cũng được sử dụng trong cơ sở mã maven.
Tôi thực sự muốn biết cách thực hiện điều này bằng cách sử dụng các lớp maven.
Tôi đã thực hiện một chút công bằng tìm kiếm google, nhưng điều thú vị về tìm kiếm bất cứ điều gì về maven và lọ (ngay cả trên stackoverflow) là tôi tìm thấy rất nhiều giải pháp về cách sử dụng maven, chứ không phải là cách sử dụng mã các lớp học quạ.
Thanks for the help
Maven tải tất cả jar tệp được chỉ định trong tệp pom.xml của mình. –
cũng xem xét [jcabi-aether] (http://www.jcabi.com/jcabi-aether/), điều này có thể giúp làm điều này dễ dàng hơn và ít dòng mã hơn – yegor256