1

我有一个包含六个子模块的聚合项目。构建一切正常,但是当我尝试mvn install:install-file时,我只得到顶级 pom。我也尝试过mvn install:install我收到错误“无法覆盖只读参数:目标中的打包:安装:安装”。

我在所有子模块中都指定了安装插件。

父 POM:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-install-plugin</artifactId>
  <version>2.3.1</version>
  <configuration>
    <file>pom.xml</file>
    <groupId>com.pillardata</groupId>
    <artifactId>${project.artifactId}</artifactId>
    <version>${project.version}</version>
    <packaging>pom</packaging>
  </configuration>
</plugin>

子 POM:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-install-plugin</artifactId>
  <version>2.3.1</version>     
  <configuration>

    <file>${project.build.directory}/${project.artifactId}-${project.version}.jar/</file>
    <groupId>com.pillardata</groupId>
    <artifactId>${project.artifactId}</artifactId>
    <version>${project.version}</version>
    <packaging>jar</packaging>
  </configuration>
</plugin>

其他人似乎有这个工作,但经过几个小时的研究并尝试了我能想到的一切(合理的),我一直处于死胡同。

想法?

PS,这是maven 2.2.1。

4

2 回答 2

1

我不确定我是否完全理解你的问题,所以就在这里。

您有一个包含一些模块的项目,如下所示:

   一个
   |
   +-- 乙
   |
   +-- C

并且您需要在 Maven 本地存储库中“安装”每个模块的工件。然后你需要做的就是运行: mvn install

您可以从任一(子)模块运行它,整个子树将被安装。如果您想单独安装它们(即防止在每个子模块上调用命令),那么您可以使用该-N标志: mvn install -N

不需要定义任何东西来为您的 Maven 项目安装工件。

于 2011-01-27T12:29:25.623 回答
0

您必须在子项目中继承父 pom 并将父中的子指定为“模块”。见 [POM][1]

于 2011-01-27T00:43:11.573 回答