我最近开始无法发布一个长期以来一直运行良好的maven项目。该项目由几个模块组成,其结构类似于:
project_server
project_webserver
project_qp
project_qp_ingr
project_repo
project_repo_ingr
两个模块project_qp和project_repo都依赖于带有$ {project.version}引用的project_webserver。
使用Jenkins构建项目,在构建快照构建时一切正常。 当我尝试在带有选项/目标“-Dresume = false release:prepare release:perform -e”的maven发布版本配置中使用版本3.1-RC1构建版本时,一切都在“清理,验证”阶段正常工作,但是在“deploy,site-deploy”中,project_repo突然无法编译。
编译错误包括模块没有从project_webserver模块中查找类。但是,project_qp_ingr模块已经构建并且工作正常。
所有这些都告诉我,从project_repo_ingr到project_webserver的引用有问题,但是因为在构建快照版本时项目构建正常。
project_repo_ingr的pom看起来像:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>project_repo_ingr</artifactId>
<name>project_repo_ingr</name>
<packaging>jar</packaging>
<parent>
<groupId>com.apptus.ecom</groupId>
<artifactId>project_repo</artifactId>
<version>3.1.0-SNAPSHOT</version>
</parent>
<dependencies>
<dependency>
<groupId>com.apptus.ecom</groupId>
<artifactId>project_webserver</artifactId>
<version>${project.version}</version>
</dependency>
<!-- Test dependencies -->
<dependency>
<groupId>com.apptus.ecom</groupId>
<artifactId>project_webserver</artifactId>
<version>${project.version}</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
</dependencies>
</project>
我省略了一些依赖关系,但这几乎就是它。模块project_repo_ingr和project_qp_ingr都依赖于常规工件和测试jar。
我使用Java 6,Maven 2和Jenkins 1.436以及M2 Release Plugin 0.8.1。
非常感谢任何帮助,我整天都在为此烦恼。
更新: 自上次工作以来我所做的更改是将svn repo从trunk分支到release分支。 trunk中的jenkins作业已复制到分支中,并且svn路径已更改。我还更新了project_server pom的一部分。