在多模块项目中使用Maven许可插件

时间:2013-07-11 07:40:04

标签: maven

我正在开发一个多模块项目,其中所有模块共享一个公共许可证(Apache 2.0)。现在我想为所有源文件添加标题,我想在父pom.xml中配置它(包装类型是pom)

我在基础目录中创建了一个文件夹license,并添加了一个文件licenses.properties,其中我声明了apache_2_0=apache_2_0。另外,我添加了一个子文件夹apache_2_0,其中有两个文件header.txtlicense.txt。现在我将以下插件添加到我的父pom中:

<build>
    <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>license-maven-plugin</artifactId>
            <version>1.5</version>
            <configuration>
                <licenseName>apache_2_0</licenseName>
                <licenseResolver>${project.basedir}/license</licenseResolver>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>update-file-header</goal>
                    </goals>
                    <phase>process-sources</phase>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

当我运行时,我会收到一条错误消息:

  

[错误]无法执行目标   org.codehaus.mojo:许可证行家-插件:1.5:更新文件头   (默认)项目(myproject):无法获取许可证   存储库:未知协议:c - &gt; [帮助1]

有以下例外:

  

java.net.MalformedURLException:未知协议:c

我做错了什么?

2 个答案:

答案 0 :(得分:2)

您尚未在licenseResolver

上定义任何protocole(file://,http://,...)

替换

<licenseResolver>${project.basedir}/license</licenseResolver>

<licenseResolver>file://${project.basedir}/license</licenseResolver>

答案 1 :(得分:0)

或者直接使用$ {project.baseUri}