在多模块项目中使用License Maven插件时出错

时间:2014-04-13 01:57:11

标签: java maven maven-plugin

Maven项目结构

我有一个简单的多模块Maven项目:

  • parent-project
    • child-project1war
    • child-project2jar

parent-project的{​​{1}}引用了pom.xml部分中的两个子项目。这两个子项目都引用了<modules>部分中的父项。

<parent>取决于child-project1(它在child-project2部分中引用它。)

问题

我正在尝试使用<dependencies>上的License Maven Plugin生成一个包含所有依赖项及其许可证列表的文件:

parent-project

我收到错误:

mvn license:aggregate-add-third-party

当我评论Failed to execute goal on project child-project1: Could not resolve dependencies for project ... child-project1 ... : Could not find artifact ... child-project2 ... child-project1的依赖关系时,插件可以正常工作。所以我可以使用这个插件,但每次我都要注释掉依赖项。

有什么问题?有办法解决吗?

1 个答案:

答案 0 :(得分:2)

您面临的问题是默认情况下maven-license-plugin会在您的本地存储库中查找子工件。 我想,父pom.xml中的插件配置如下所示:

    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>license-maven-plugin</artifactId>
        <version>1.6</version>
        <configuration>
          <!-- your own config goes here -->
        </configuration>
      </plugin>
    </plugins>

您必须使用

将多模块项目安装到本地Maven存储库
mvn install

之后,你运行

mvn license:aggregate-add-third-party
再次

,构建将成功。

如果您在插件中配置了<execution>,则会失败,因为默认情况下maven-license-plugin会绑定到generate-resources阶段[1],并且始终会执行此操作install [2]

干杯, PK