我的多项目 Maven 项目有一些问题。
问题如下:我有一个按以下方式组织的项目:
root
+-- pom.xml
!
+-- module1
! +-- pom.xml
+-- module2
+-- pom.xml
module2
取决于哪里module1
。
Module1
打包为war
,它还会生成依赖的jar
文件。module2
只要更改仅在即已在远程存储库中,一切都很好module2
,module1.jar
但是每当两个模块中都有更改时,mvn clean release:clean release:prepare release:perform
我都会收到一条错误消息,指出module1.jar
无法在远程存储库中找到。所以要解决这个问题,我已经像这样添加maven-install-plugin
到Module1
's pom 文件中:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.1</version>
<configuration>
<file>${project.build.directory}/${project.artifactId}-${project.version}.jar</file>
<!-- <packaging>jar</packaging> -->
</configuration>
<executions>
<execution>
<id>install</id>
<phase>compile</phase>
<goals>
<goal>install</goal>
</goals>
</execution>
</executions>
每当我注释掉<packaging>jar</packaging>
它时,它都会尝试将Module1
jar 文件作为war
文件安装到本地 repo 中(我猜默认情况下它会从 POM 文件中获取打包)。所以我得到这样的东西:
[INFO] [INFO] [jar:jar {execution: creation}]
[INFO] [INFO] Building jar: ${project.build.directory}/${project.artifactId}-${project.version}.jar
[INFO] [INFO] [install:install {execution: install}]
[INFO] [INFO] Installing ${project.build.directory}/${project.artifactId}-${project.version}.jar to <.m2_local_repo>/<proper_path>/${project.version}/${project.artifactId}-${project.version}.war
但是,如果我取消注释<packaging>jar</packaging>
它会抱怨我正在尝试设置只读属性。
所以我有一个问题,我如何jar
在构建期间将文件安装到我的本地仓库?
使用pom 文件module1
的某些部分更新问题:module2
module2
pom部分:
<parent>
<groupId>...</groupId>
<artifactId>...</artifactId>
<version>1.01-SNAPSHOT</version>
</parent>
<artifactId>module2</artifactId>
<version>1.08-SNAPSHOT</version>
<packaging>war</packaging>
...
<dependency>
<groupId>...</groupId>
<artifactId>module1</artifactId>
<version>4.18-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
module1
起居室:
<parent>
<groupId>...</groupId>
<artifactId>...</artifactId>
<version>1.01-SNAPSHOT</version>
</parent>
<artifactId>module1</artifactId>
<version>4.18-SNAPSHOT</version>
<packaging>war</packaging>
我添加了安装插件以确保module1.4.18.jar
将在本地安装以便module2.0.18.war
能够使用module1.4.18.jar