2011-07-10 8 views
8

मैं जानना चाहता हूं कि Nexus repository manager में आर्टिफैक्टरी जैसे लाइसेंस प्रबंधक शामिल हैं (इस प्लगइन के साथ: http://wiki.jfrog.org/confluence/display/RTF/License+Control)।आप अपनी परियोजना की निर्भरताओं (पुस्तकालयों) के लाइसेंस कैसे प्रबंधित करते हैं?

यदि प्लगइन के माध्यम से नेक्सस में ऐसा करने का कोई तरीका नहीं है, तो आप अपने प्रोजेक्ट की निर्भरताओं (मेवेन के साथ) के लाइसेंस कैसे प्रबंधित करते हैं?

उदा। एक वाणिज्यिक परियोजना के लिए, मैं अंतिम आर्टिफैक्ट (.jar, .war, आदि) में एक जीपीएल पुस्तकालय शामिल नहीं कर सकता।

+0

Sonatype लाइसेंस प्रबंधन और अनुपालन "इनसाइट" कहा जाता है के लिए एक नया उत्पाद शुरू किया है http://www.sonatype.com/Products/Sonatype-Insight/Development-Insight –

उत्तर

6

Artifactory कार्यक्षमता Maven लाइसेंस सत्यापनकर्ता प्लगइन

http://code.google.com/p/maven-license-validator-plugin/

व्यावहारिक समस्या इन दोनों दृष्टिकोण है कि बहुत कुछ Maven केंद्रीय मॉड्यूल उनके poms में अप करने की तारीख लाइसेंस जानकारी के साथ का उपयोग कर नकल करते जा सकता है। तो मैं जो देख सकता हूं उससे यह एक अच्छा विचार है जो आपके निर्माण के लाइसेंस अनुपालन का आकलन करने की समस्या के वास्तविक समाधान से कम हो जाता है ...

मेरा आदर्श समाधान प्रक्रियाओं का एक बाहरी सेट है जो नेक्सस की सामग्री को स्कैन करता है उपलब्ध लाइसेंस जानकारी के लिए भंडार। रिलीज (गैर विकास बिल्ड) में उपयोग के लिए अनुमोदित भंडार की सामग्री को नियंत्रित करने के लिए इस जानकारी का उपयोग नेक्सस प्रोफेशनल के procurement suite को बीज करने के लिए किया जाता है।

कुछ बाइनरी में टेक्स्ट लाइसेंस लाइसेंस फ़ाइलें होती हैं और वैकल्पिक रूप से संबंधित स्रोत कोड पैकेज को लाइसेंस और आईपी जानकारी के लिए भी स्कैन किया जा सकता है। इस कार्य को करने के लिए कई तृतीय पक्ष टूल उपलब्ध हैं। लोगों को मैं पर विचार किया गया है कर रहे हैं:

अंत में, जब तक Maven केंद्रीय मॉड्यूल लाइसेंस पर विश्वसनीय मेटा डेटा प्रदान कर सकते हैं, मैं इस के लिए समाधान लगता है समस्या अत्यधिक अनुकूलित और उप-इष्टतम

1

आर्टिफैक्टरी द्वारा लिया गया दृष्टिकोण थोड़ा अलग है, कच्चे के बाद से विरूपण साक्ष्य मेटाडाटा केवल प्रारंभिक बिंदु के रूप में इस्तेमाल किया जाता है, लेकिन दिन के उपयोगकर्ताओं के अंत में पूरा करने और लापता/गलत लाइसेंस जानकारी में संशोधन कर सकते हैं:

  1. सबसे पहले, पोम (सभी माता पिता poms सहित) या आइवी वर्णनकर्ता को निकालने के लिए उपयोग किया जाता है हेरिस्टिक लाइसेंस जानकारी। यह ऑटो-डिस्कवरी चरण पूरी तरह से वैकल्पिक है।
  2. यह लाइसेंस जानकारी तब उनके चेकसम के आधार पर कलाकृतियों से जुड़ी हुई है, और उपयोगकर्ताओं द्वारा पूरी तरह से संपादन योग्य है। व्यवस्थापक लाइसेंस विवरण अपडेट कर सकते हैं जो अपने जीवनकाल के लिए आर्टिफैक्ट के साथ रहेंगे।
  3. वैश्विक नीति के अनुसार प्रत्येक लाइसेंस को अनुमोदित या अस्वीकृत किया जा सकता है।
  4. तैनाती के समय पर सभी निर्भरताओं की लाइसेंस जानकारी पढ़ी जाती है - अगर अस्वीकृत या अज्ञात लाइसेंस पाए जाते हैं तो जानकारी के साथ एक ईमेल अलर्ट पूर्व-कॉन्फ़िगर किए गए पते पर भेजा जाता है।

इससे आपको नई निर्भरताओं (और उनके संबंधित लाइसेंस) के परिवर्तन/जोड़ों के साथ-साथ निर्माण प्रक्रिया द्वारा उठाए गए और उठाए जाने की अनुमति मिलती है।

एक और महत्वपूर्ण अंतर बहु-लाइसेंस, जहां लाइसेंस का केवल एक ही मंजूरी दे दी है और दूसरों को नहीं के साथ कलाकृतियों को संभालने की क्षमता है।

आप यहाँ इसके बारे में और अधिक पढ़ सकते हैं -

http://wiki.jfrog.org/confluence/display/RTF/License+Control

+2

इस मूल प्रश्न से बात नहीं कर रहा है , और आर्टिफैक्टरी के लिए सिर्फ एक मार्केटिंग पिच है। ऐसा लगता है कि उपयोगकर्ता पहले से ही jfrog के प्रसाद से परिचित है, और विशेष रूप से नेक्सस विकल्पों के बारे में पूछ रहा था। – Eddie

0

Artifactory + आइवी + ant साथ प्रयोग के लिए एक अनुकूलित समाधान लाइसेंस जानकारी के लिए प्रत्येक मॉड्यूल स्कैन करने के लिए है। अगर लाइसेंस पाया जाता है, Artifactory में है कि लाइसेंस फ़ाइल को पॉप्युलेट और यह एक प्रकाशित विरूपण साक्ष्य के रूप में उपलब्ध है ivy.xml है अद्यतन करें। तो फिर अपने जार फ़ाइल के साथ लाइसेंस लाने में <ivy:retrieve/> कहते हैं।

लाइसेंस मॉड्यूल के ivy.xml URL के रूप में निर्दिष्ट किया जा सकता है। इस मामले में, लाइसेंस डाउनलोड करने और यह किसी पाठ फ़ाइल में लिखने के लिए इस्तेमाल ant के get कार्य।

[inside log4j's ivy.xml as an example] 
<ivy-module xmlns:m="http://ant.apache.org/ivy/maven" version="2.0"> 
<info organisation="log4j" module="log4j" revision="1.2.16" status="integration" 
     publication="20120620150430"> 
    <license name="The Apache Software License, Version 2.0" 
    url="http://www.apache.org/licenses/LICENSE-2.0.txt"/> 
    ... 
</info> 
</ivy-module> 

वैकल्पिक रूप से, लाइसेंस मॉड्यूल के .jar फ़ाइल के भीतर एक पाठ फ़ाइल के रूप में शामिल किया जा सकता है। इस मामले में, लाइसेंस निकालने और यह एक पाठ फ़ाइल में लिखने के लिए इस्तेमाल ant के unjar कार्य।

[inside junit's .jar file as an example] 
junit-4.8.2.jar/LICENSE.txt 

एक बार लाइसेंस एक पाठ फ़ाइल के रूप में बाहर लिखा गया है, एक विरूपण साक्ष्य के रूप में लाइसेंस जोड़ने के लिए ant के xmltask कार्य का उपयोग करें।

[inside log4j's ivy.xml as an example] 
<publications> 
<artifact conf="master" ext="jar" name="log4j" type="bundle"/> 
<artifact conf="sources" ext="jar" m:classifier="sources" name="log4j" type="source"/> 
<artifact conf="javadoc" ext="jar" m:classifier="javadoc" name="log4j" type="javadoc"/> 
<!-- next line added --> 
<artifact conf="master" ext="txt" name="log4j" type="license"/> 
</publications> 

Artifactory वापस करने के लिए संशोधित ivy.xml और लाइसेंस प्रकाशित करें। जब अपने निर्माण के साथ बांध दिया

<ivy:resolve file="${ivy.xml}" /> 
<ivy:publish resolver="${resolver}" pubrevision="@{rev}" status="integration" 
overwrite="true" forcedeliver="true" haltonmissing="false" 
srcivypattern="${ivy.local}/[organisation]/[module]/ivy-[revision].xml" > 
    <artifacts pattern="${ivy.local}/[organisation]/[module]/ivys/ivy-[revision].[ext]" /> 
    <artifacts pattern="${ivy.cache.dir}/[organisation]/[module]/licenses/[module]-[revision].[ext]" /> 
</ivy:publish> 

उपयोग <ivy:retrieve/> अपने जार फ़ाइल के साथ लाइसेंस लाने में।

<ivy:retrieve pattern="${ivy.local}/[artifact].[ext]" conf="compile, runtime" type="jar, license" /> 
+0

विषय भी बंद करें। उपयोगकर्ता मेवेन/नेक्सस विकल्पों के बारे में पूछ रहा है - कलाकृतियों की व्याख्या नहीं। – Eddie

संबंधित मुद्दे

 संबंधित मुद्दे