Java maven许可插件:为所有子级使用parentPom许可
我正在尝试使用maven许可证插件获取多模块项目的许可证和标题信息。我希望避免使用多个许可证副本,并尽可能使pom文件易于维护。为此,我将插件信息放入元素中的parentPom中。我完全配置了插件,并将必要的文件放入父项目中。因此,在家长中,我有:Java maven许可插件:为所有子级使用parentPom许可,java,maven,Java,Maven,我正在尝试使用maven许可证插件获取多模块项目的许可证和标题信息。我希望避免使用多个许可证副本,并尽可能使pom文件易于维护。为此,我将插件信息放入元素中的parentPom中。我完全配置了插件,并将必要的文件放入父项目中。因此,在家长中,我有: <pluginManagement> <plugins> <plugin> <groupId>org.co
<pluginManagement>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>license-maven-plugin</artifactId>
<version>1.6</version>
<configuration>
<licenseName>my_license</licenseName>
<licenseResolver>${project.baseUri}/src/license</licenseResolver>
</configuration>
<executions>
<execution>
<id>first</id>
<goals>
<goal>update-file-header</goal>
</goals>
<phase>process-sources</phase>
</execution>
</executions>
</plugin>
</pluginManagement>
org.codehaus.mojo
许可maven插件
1.6
我的驾照
${project.baseUri}/src/license
第一
更新文件头
过程源
然后,我将对该插件的引用放入一个子pom文件中:
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>license-maven-plugin</artifactId>
</plugin>
</plugins>
org.codehaus.mojo
许可maven插件
但子级无法生成,因为它尝试沿子级的项目路径而不是父级的项目路径查找licenses.properties文件。如何让子项目在父项目中查找licenses.properties?解决方案是使用classpath选项,如下所述: 从1.3版开始使用classpath中的许可证解析程序 可以从类路径使用许可证解析程序(表示包含在 jar或插件依赖项的任何依赖项) 只需在插件配置中使用classpath://协议 假设您在工件中有一个许可证解析程序 com.my:extralicensesolvers:1.0在foo.bar包中 下一个示例演示如何从类路径使用此许可证解析程序:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>license-maven-plugin</artifactId>
<version>1.6</version>
<configuration>
<licenseName>my_license</licenseName>
<licenseResolver>classpath://foo/bar</licenseResolver>
</configuration>
<executions>
<execution>
<goals>
<goal>update-file-header</goal>
</goals>
<phase>process-sources</phase>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>com.my</groupId>
<artifactId>extraLicenseResolvers</artifactId>
<version>1.0</version>
</dependency>
</dependencies>
</plugin>
org.codehaus.mojo
许可maven插件
1.6
我的驾照
classpath://foo/bar
更新文件头
过程源
com.my
外部许可证解析程序
1
关于这一点,不明显的是,您确实需要一个包含许可证文件的单独包。似乎没有办法将这些信息保存在父pom项目中
最后,这个解决方案成功了,我们能够为所有pom子文件使用的许可证信息提供一个单一位置。Yo还可以使用外部许可证存储库,例如通过http协议访问。