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