Artifactory +アイビー+ ant
で使用するためにカスタマイズされたソリューションは、ライセンス情報のため、各モジュールをスキャンすることです。ライセンスが見つかった場合は、そのライセンスファイルをArtifactoryに入力し、ivy.xml
を更新して、公開されたアーティファクトとして利用できるようにします。次に、<ivy:retrieve/>
を呼び出してjarファイルとともにライセンスを取得します。
ライセンスはモジュールの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>
修正ivy.xml
とバックArtifactoryにライセンスを発行します。
<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>
ビルドをバンドルするときにjarファイルと一緒にライセンスを取得するために<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 –