具有多模块的 Maven 发布插件,正在寻找测试 jar

Posted

技术标签:

【中文标题】具有多模块的 Maven 发布插件,正在寻找测试 jar【英文标题】:Maven Release Plugin with multi module, is looking for test jars 【发布时间】:2018-02-07 12:40:38 【问题描述】:

我有一个比较复杂的多模块java项目

|PARENT
|pom.xml
|-submodule1
|-pom.xml
|--api
|--pom.xml
|--impl
|--pom.xml
|--model
|--pom.xml
|-submodule2
|...

现在我希望我的詹金斯用

创建一个版本
release:prepare -Darguments="-Dmaven.javadoc.skip=true -Dmaven.test.skip=true" --batch-mode -Dtag=$RELEASE_VERSION  -DreleaseVersion=$RELEASE_VERSION -DdevelopmentVersion=$DEVELOPE_VERSION

然后执行

release:perform -Darguments="-Dmaven.javadoc.skip=true -Dmaven.test.skip=true" --batch-mode -Dtag=$RELEASE_VERSION  -DreleaseVersion=$RELEASE_VERSION -DdevelopmentVersion=$DEVELOPE_VERSION

现在的问题是我有一个子模块,其中包含集成测试和功能测试,如再保证测试。 Maven 发布插件正在寻找

Failed to execute goal on project project-workflow: 
  Could not resolve dependencies for project 
  com.project.service:service-workflow:jar:1.0.2: 
  Could not find artifact com.project.service:service-service:service-client:jar:tests:1.0.2
  in public (http://ournexus.com:8081/nexus/content/groups/public)

工作流模块中的maven声明是

<dependency>
  <groupId>$project.groupId</groupId>
  <artifactId>sevice-valuation-client</artifactId>
  <type>test-jar</type>
  <scope>test</scope>
</dependency>

我是否需要将这些测试源部署到 nexus 或者我可以以某种方式跳过这种依赖关系?

【问题讨论】:

这有帮助吗? ***.com/questions/8685100/… 【参考方案1】:

好的,问题是-Dmaven.test.skip=true 没有编译测试源,因此一旦我删除了 jar,这个 jar 就根本不存在,这个过程可以完美运行

【讨论】:

以上是关于具有多模块的 Maven 发布插件,正在寻找测试 jar的主要内容,如果未能解决你的问题,请参考以下文章

Maven FailSafe 插件的好处

未指定版本的 Maven 兄弟模块依赖

Spring Boot maven 多模块项目——单元测试(应用上下文)

了解多模块项目中的 Spring Boot Maven 插件

使用 Spring 在多模块 Maven 项目中进行集成测试

具有父 POM 的多模块项目的 Maven 版本控制