我有一个带有六个子模块的聚合项目。构建都可以工作,但是当我尝试 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。
答案 0 :(得分:1)
我不确定我完全理解你的问题,所以就是这样。
你有一个包含一些模块的项目,如下所示:
A | +-- B | +-- C
您需要在maven本地存储库中“安装”每个模块的工件。然后你需要做的就是运行:
mvn install
您可以从任一(子)模块运行它,并将安装整个子树。如果要单独安装它们(即阻止在每个子模块上调用命令),则可以使用-N
标志:
mvn install -N
不应该为你的maven项目定义任何安装工件的任何东西。
答案 1 :(得分:0)
您必须在子项目中继承父pom,并将父项中的子项指定为“modules”。见[POM] [1]