Làm cách nào tôi có thể tải xuống các đồ tạo tác Maven trong đầu bếp?


9

Tôi muốn làm một cái gì đó như thế này trong một công thức đầu bếp:

maven_artifact "/opt/foo/my.jar" do
  source "com.foo:my:0.1:jar"
end

Nhưng tôi không thể tìm thấy một cuốn sách nấu ăn cung cấp điều này. Tôi đã viết một cái gì đó về cơ bản thực hiện điều này nhưng nó không xử lý các ảnh chụp nhanh, đòi hỏi phải phân tích cú pháp maven-metadata.xml. Trước khi tôi lao vào điều này, tôi muốn chắc chắn rằng tôi đã không bỏ lỡ điều gì rõ ràng vì đây có vẻ như là một usecase cơ bản.


Bạn chỉ có thể sử dụng sách nấu ăn maven
Cherry

Câu trả lời:


4

Dựa trên mã Apache Buildr: http://svn.apache.org/repose/asf/buildr/trunk/lib/buildr/packaging/artifact.rb

Bạn có thể làm một cái gì đó như thế này:

def snapshot?
  version =~ /-SNAPSHOT$/
end

if snapshot?
    metadata_path = "#{group_path}/#{id}/#{version}/maven-metadata.xml"
    metadata_xml = StringIO.new
    URI.download repo_url + metadata_path, metadata_xml
    metadata = REXML::Document.new(metadata_xml.string).root
    timestamp = REXML::XPath.first(metadata, '//timestamp')
    build_number = REXML::XPath.first(metadata, '//buildNumber')
    snapshot_of = version[0, version.size - 9]
    classifier_snippet = (classifier != nil) ? "-#{classifier}" : ""
    repo_url + "#{group_path}/#{id}/#{version}/#{id}-#{snapshot_of}-#{timestamp.text}-#{build_number.text}#{classifier_snippet}.#{type}"
end


3

Nếu bạn sử dụng Artifactory làm kho lưu trữ Maven của bạn, một giải pháp thanh lịch hơn đã có sẵn.

Bắt đầu từ phiên bản 2.6.0, yêu cầu tạo tác không độc đáo có thể trả về ảnh chụp nhanh nhất có sẵn .

Để sử dụng tính năng này, trước tiên hãy đảm bảo rằng kho lưu trữ đích được xác định bằng chính sách chụp nhanh duy nhất , sau đó yêu cầu tạo tác mong muốn bằng cách sử dụng phiên bản chụp nhanh không độc đáo, chẳng hạn như:

org / artifact / 1.0-SNAPSHOT / artifact-1.0-SNAPSHOT.jar

Và ảnh chụp độc đáo mới nhất của hiện vật với phiên bản cơ sở là 1.0 sẽ được trả lại.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.