当前位置: 首页 > 知识库问答 >
问题:

如何为发布添加目标:执行maven发布插件的阶段

唐修能
2023-03-14

我用的是孔晨的招摇maven插件。此外,我还使用maven发布插件。大摇大摆。由swagger maven插件生成的json不是repo的一部分。如果我用mvn包构建应用程序,那就太夸张了。json被生成并成为jar的一部分。

如果我用maven release插件发布应用程序,那就大摇大摆了。json不是jar文件的一部分。我查看了日志,发现maven release插件有三个步骤——发布:清理、发布:准备和执行。

发布:清理-清理工作区

释放:准备日志显示swagger-maven-plugin工作并生成swagger.html" target="_blank">json

发布:执行-日志显示执行由三个阶段组成(验证已完成的准备阶段、从scm中签出prjoect和运行执行目标)。我认为这意味着整个项目再次签出,因此生成的文件消失了(这有多好…)。

我如何添加另一个阶段发布:执行?

我找到了以下留档https://maven.apache.org/maven-release/maven-release-manager/index.html知道可以增加额外的备考目标https://maven.apache.org/maven-release/maven-release-plugin/examples/run-goals-before-commit.html

我需要添加目标到发布:执行步骤(例如编译或包)。我怎样才能做到这一点?

谢谢!

         <plugin>
            <groupId>com.github.kongchen</groupId>
            <artifactId>swagger-maven-plugin</artifactId>
            <version>3.1.8</version>
            <configuration>
                <apiSources>
                    <apiSource>
                        <basePath>/.../api</basePath>
                        <locations>
                            <location>not.public</location>
                        </locations>
                        <info>
                            <title>${project.artifactId}</title>
                            <version>${project.version}</version>
                        </info>
                        <outputFormats>json</outputFormats>
                        <swaggerDirectory>${basedir}/src/main/resources/META-INF/path</swaggerDirectory>
                    </apiSource>
                </apiSources>
            </configuration>
            <executions>
                <execution>
                    <phase>compile</phase>
                    <goals>
                        <goal>generate</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

共有1个答案

宗晟
2023-03-14

您需要设置释放:执行目标参数。这包含在“内部构建”中执行的目标。

 类似资料:
  • 我以一个新的gradle用户的身份创建gradle版本,但我过去曾与maven合作过。 我试图重现maven发布插件的动作: 将分支版本更改为发行号(在svn提交) 如您所见,我正在使用: Nexus OSS作为版本控制库 SVN作为scm Gradle(2.8) 我正试图通过这两个插件实现我的目标: > 将分支版本更改为发行号(在svn提交) 创建标签(位于svn) 将分支版本更改为新快照编号(

  • 我在运行mvn发行版:准备时遇到问题。我有以下信息:

  • 我试图使用目标 release:prepare 生成一个版本,但是当我在 Eclipse 上运行它时,我得到了错误: 无法执行目标org.apache.maven.plugins:maven-estes-plugin:2.0-beta-7:项目mwFramework上的准备(default-cli):无法运行目标清理验证:执行过程中出错。无法运行程序“mvn”(在目录“/home/gnng/Dev

  • 问题内容: 我正在 Jenkins 内部使用M2发行插件,该 插件 内部调用了 maven-release-plugin 2.3.2 ,而在构建时抛出此错误: 。问题是,我的项目poms 的版本 确实 是1.0.0-SNAPSHOT。我想念什么? 是,而我只是为了 是的,我已经完成了基本的Google + SO拖网,并且到处都指出我的POM应该使用SNAPSHOT作为版本,而该版本已经存在。除了我

  • 我试图释放,但失败了 MVN发布:执行 错误是 部署失败:未在POM inside distributionManagement元素或-DaltDeploymentRepository=id::layout::url参数中指定repository元素 pom。xml 我不明白这个问题。通过部署插件部署到快照存储库工作正常

  • 我已经创建了一个maven项目。构建是成功的。但是我在尝试在我的maven项目中做标记准备(“mvn发布:准备”)时出现了以下错误。我在pom中添加了新的依赖项后收到了这个错误,如下所示。 请找出下面的错误。 [错误]无法执行目标组织。阿帕奇。专家插件:maven release插件:2.5.3:project print services上的prepare(默认cli):reactor proj