模拟Maven释放

模拟Maven释放,maven,Maven,我们的所有项目都有一个基本的Maven父POM,它通过集成测试进行测试。但是,定制的很大一部分是针对Maven发行版插件的: <plugin> <artifactId>maven-release-plugin</artifactId> <configuration> <tagBase>https://my-url</tagBase> <preparationGoals&g

我们的所有项目都有一个基本的Maven父POM,它通过集成测试进行测试。但是,定制的很大一部分是针对Maven发行版插件的:

<plugin>
    <artifactId>maven-release-plugin</artifactId>
    <configuration>
        <tagBase>https://my-url</tagBase>
        <preparationGoals>clean verify org.acme:my-plugin:my-goal</preparationGoals>
        <completionGoals>org.acme:my-other-plugin:other-goal<completionGoals>
        <resume>false</resume>
    </configuration>
</plugin>

maven发布插件
https://my-url
clean verify org.acme:my plugin:my goal
acme:my other插件:其他目标
假的
我试着通过“release:prepare”来测试它,但由于父POM的非发布依赖项,它无法发布project,甚至无法通过
-dallowtimestedsnapshots=true
删除

我可以通过“release:prepare-DdryRun=true”进行测试,但这甚至不能测试准备目标。所以我能想到的唯一其他方法是发布POM,然后尝试发布任意项目。所以现在我的版本是1.0.14,已经恢复了大约50次,我认为这不再是正确的方法


有没有办法模仿Maven版本?也许告诉他标记到本地路径,让他在那里提交更改?他也不应该部署到我们的Nexus,但我已经到了不再挑剔的地步。

用概要文件模块化您的流程。有一个触发你的“准备”动作的配置文件,和一个触发你的“执行”动作的配置文件,并在运行发布插件之前测试它们。通过激活配置文件,配置发布插件来完成这些操作。

使用配置文件模块化流程。有一个触发你的“准备”动作的配置文件,和一个触发你的“执行”动作的配置文件,并在运行发布插件之前测试它们。通过激活配置文件来配置发布插件来完成这些事情。

我也需要这样做,像你一样,我对实际执行SVN提交或部署到远程repo不感兴趣-在我看来,验证是其他集成测试的一部分。我认为
maven发布插件
开发人员也会有类似的需求,事实上他们也有。他们写道

您可以看到id为
的配置文件中使用的模拟运行其
。注意:配置使用
setupIncludes
,以确保在运行任何实际测试之前在本地repo中构建并安装模拟

项目本身需要使用模拟。查看其中一个,以了解如何定义
scm
元素并添加对该元素的依赖关系

我使用了一个实例来验证在测试期间是否运行了适当的执行


注意:我链接的安装目录中有3个模拟。我发现我只需要使用其中两个,一个后缀是“-dummy。”

我也需要这样做,像你一样,我对实际执行SVN提交或部署到远程repo不感兴趣-在我看来,验证是其他集成测试的一部分。我认为
maven发布插件
开发人员也会有类似的需求,事实上他们也有。他们写道

您可以看到id为
的配置文件中使用的模拟运行其
。注意:配置使用
setupIncludes
,以确保在运行任何实际测试之前在本地repo中构建并安装模拟

项目本身需要使用模拟。查看其中一个,以了解如何定义
scm
元素并添加对该元素的依赖关系

我使用了一个实例来验证在测试期间是否运行了适当的执行


注意:我链接的安装目录中有3个模拟。我发现我只需要使用其中两个,后缀为“-dummy”的。

我不想测试
,我想测试准备和完成目标。这两个目标从scm标签中读取关键信息。所有的准备工作都是运行一个普通的构建,然后是scm过程。所有发布都是scm操作(签出),然后是mvn-预释放。没有scm,没有要测试的内容。你看过问题了吗?我改变了这些目标,并添加了一系列其他插件,关键是要看它们是否相互配合,是否以正确的顺序调用。我不想测试
,我想测试准备和完成目标。这些目标从scm标记读取关键信息。所有的准备工作都是运行一个普通的构建,然后是scm过程。所有发布都是scm操作(签出),然后是mvn-预释放。没有scm,没有要测试的内容。你看过问题了吗?我改变了这些目标,并添加了一系列其他插件,关键是要看它们是否相互配合,是否以正确的顺序调用。诸如此类。你提到的“集成测试”是基于Maven Invoker的吗?@user944849是的。你提到的“集成测试”是基于Maven Invoker的吗?@user944849是的,是的。