我正在使用license:aggregate-add-third-party生成THIRD-PARTY.txt文件,其中包含所有依赖项的许可证详细信息。这没有任何问题。
我还购买了几个 Javascript 库的许可证。我想将这些 javascript 库的详细信息包含到我使用 maven 许可证插件通过 pom 调用生成的 THIRD-PARTY.txt 文件中。
maven 许可证插件中是否有任何方法可以包含一些外部许可证的额外详细信息?
我正在使用license:aggregate-add-third-party生成THIRD-PARTY.txt文件,其中包含所有依赖项的许可证详细信息。这没有任何问题。
我还购买了几个 Javascript 库的许可证。我想将这些 javascript 库的详细信息包含到我使用 maven 许可证插件通过 pom 调用生成的 THIRD-PARTY.txt 文件中。
maven 许可证插件中是否有任何方法可以包含一些外部许可证的额外详细信息?
是的,这是可以做到的。在 pom.xml 中添加:
<configuration>
<fileTemplate>${project.basedir}/src/main/resources/template.ftl</fileTemplate>
</configuration>
然后使用以下内容将文件 template.ftl 创建到资源目录中:
<#function licenseFormat licenses>
<#assign result = ""/>
<#list licenses as license>
<#assign result = result + " (" +license + ")"/>
</#list>
<#return result>
</#function>
<#function artifactFormat p>
<#if p.name?index_of('Unnamed') > -1>
<#return p.artifactId + " (" + p.groupId + ":" + p.artifactId + ":" + p.version + " - " + (p.url!"no url defined") + ")">
<#else>
<#return p.name + " (" + p.groupId + ":" + p.artifactId + ":" + p.version + " - " + (p.url!"no url defined") + ")">
</#if>
</#function>
List of third-party dependencies:
<#list dependencyMap as e>
<#assign project = e.getKey()/>
<#assign licenses = e.getValue()/>
${licenseFormat(licenses)} ${artifactFormat(project)}
</#list>
他们将您自己的信息添加到此文件中(到最后)。该文件是一个 Freemarker 模板。
我唯一的解决方案是在 THIRD-PARTY.txt 文件上执行 sed 以添加额外的许可证细节。