मैं शेफ में मावेन कलाकृतियों को कैसे डाउनलोड कर सकता हूं?


9

मैं शेफ की रेसिपी में कुछ ऐसा करना चाहता हूँ:

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

लेकिन मुझे एक कुकबुक नहीं मिल रही है जो यह प्रदान करती है। मैंने कुछ लिखा है जो मूल रूप से ऐसा करता है, लेकिन यह स्नैपशॉट को संभालता नहीं है, जिसके लिए पार्सिंग मेवेन-मेटाडेटा.एक्सएमएल की आवश्यकता होती है। इससे पहले कि मैं इसमें डुबकी लगाऊं, मैं यह सुनिश्चित करना चाहता था कि मैं कुछ स्पष्ट याद नहीं कर रहा था क्योंकि यह एक बुनियादी उपयोग की तरह लगता है।


आप बस
चेरी

जवाबों:


4

Apache Buildr कोड के आधार पर: http://svn.apache.org/repos/asf/buildr/trunk/lib/buildr/packaging/artifact.rb

आप ऐसा कुछ कर सकते हैं:

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

यदि आप अपने मावेन भंडार के रूप में आर्टिफैक्ट का उपयोग करते हैं, तो एक अधिक सुरुचिपूर्ण समाधान हाथ में है।

संस्करण 2.6.0 से शुरू होकर एक गैर-अद्वितीय विरूपण साक्ष्य के लिए अनुरोध नवीनतम उपलब्ध स्नैपशॉट वापस कर सकता है ।

इस सुविधा का उपयोग करने के लिए, पहले सुनिश्चित करें कि लक्ष्य रिपॉजिटरी को एक अद्वितीय स्नैपशॉट नीति के साथ परिभाषित किया गया है , फिर एक गैर-अद्वितीय स्नैपशॉट संस्करण का उपयोग करके वांछित विरूपण साक्ष्य का अनुरोध करें:

org / विरूपण साक्ष्य / 1.0-SNAPSHOT / विरूपण साक्ष्य-1.0-SNAPSHOT.jar

और 1.0 के आधार संशोधन के साथ विरूपण साक्ष्य का नवीनतम अनूठा स्नैपशॉट वापस आ जाएगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.