我想知道Nexus repository manager是否包含像Artifactory的許可證管理器(使用此插件:http://wiki.jfrog.org/confluence/display/RTF/License+Control)。如何管理項目的依賴項(庫)的許可證?
如果沒有辦法通過插件在Nexus中執行此操作,那麼如何管理項目依賴關係的許可證(使用maven)?
例如對於商業項目,我不能將GPL庫包含到最終的工件(.jar,.war等)中。
我想知道Nexus repository manager是否包含像Artifactory的許可證管理器(使用此插件:http://wiki.jfrog.org/confluence/display/RTF/License+Control)。如何管理項目的依賴項(庫)的許可證?
如果沒有辦法通過插件在Nexus中執行此操作,那麼如何管理項目依賴關係的許可證(使用maven)?
例如對於商業項目,我不能將GPL庫包含到最終的工件(.jar,.war等)中。
的Artifactory的功能可以使用Maven的許可證驗證插件
http://code.google.com/p/maven-license-validator-plugin/
的實際問題,這兩種方法,很少有Maven的中央模塊,在他們的多金屬氧酸鹽了最新的許可信息進行仿真。因此,從我所看到的情況來看,這是一個很好的主意,它不能真正解決評估版本的許可證合規性的問題......
我的理想解決方案是一組外部過程,它們掃描Nexus的內容存儲庫中的可用許可證信息然後,這些信息將用於播種Nexus Professional的procurement suite,以控制已批准存儲庫的內容以供發佈(非開發版本)使用。
某些二進制文件包含文本許可證文件,或者也可以掃描關聯的源代碼包中的許可證和IP信息。許多第三方工具可用於執行此任務。我一直在考慮的是:
總之,直到Maven的中央可以提供模塊的許可可靠的元數據,我認爲這個解決方案問題將仍然高度定製和次優
Artifactory採取的做法有點不同,因爲原料工件元數據僅作爲起點,但在這一天的用戶的端部可以完成和修改丟失/不正確的許可證信息:
這使您可以在構建過程提交併提取它們時立即處理新依賴項(及其各自的許可證)的更改/添加。
另一個關鍵區別是能夠使用多個許可證處理工件,其中只有一個許可證被批准,其他許可證不是。
你可以閱讀更多關於它在這裏 -
http://wiki.jfrog.org/confluence/display/RTF/License+Control
這並不是原來的問題發言,並且僅僅是Artifactory的市場推廣。這聽起來像用戶已經熟悉jfrog的產品,並且特別要求瞭解Nexus的替代品。 – Eddie
與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>
使用<ivy:retrieve/>
與您建立捆綁在其JAR文件一起獲取許可證。
<ivy:retrieve pattern="${ivy.local}/[artifact].[ext]" conf="compile, runtime" type="jar, license" />
也是題外話。用戶詢問有關Maven/Nexus的替代方案 - 不是對artifactory的解釋。 – Eddie
Sonatype的都推出了新產品的許可證管理和法規遵從所謂的「洞察」 http://www.sonatype.com/Products/Sonatype-Insight/Development-Insight –