maven-install-plugin:安装子模块jar文件

时间:2011-01-27 00:30:43

标签: maven maven-plugin pom.xml

我有一个带有六个子模块的聚合项目。构建都可以工作,但是当我尝试 mvn install:install-file 时,我只能获得顶级pom。我也尝试了 mvn install:install 我收到错误“无法覆盖只读参数:打包在目标: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>

Child 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>

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

想法?

P.S。,这是maven 2.2.1。

2 个答案:

答案 0 :(得分:1)

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

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

   A
   |
   +-- B
   |
   +-- C

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

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

不应该为你的maven项目定义任何安装工件的任何东西。

答案 1 :(得分:0)

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