gpt4 book ai didi

maven - 在 github 页面中包含基于 pom.xml 的版本号?

转载 作者:行者123 更新时间:2023-12-04 13:22:42 25 4
gpt4 key购买 nike

我有一个基于 Java Maven 的 project在 GitHub 上,我维护 documentation on GitHub Pages .

我在两个地方提到了我的 maven 项目的版本号。目前我手动更新index.mdreadme.md手动使用版本号(在一页上多次)。

版本号有单一来源的方法吗?

其中之一:

  • 小解决方案:在页面顶部定义它。
  • 中等解决方案:为文档定义一次(挑战:文档的/doc 与 readme.md 运行不同(?))
  • 最佳解决方案:从 pom.xml 中读取

不胜感激

最佳答案

有一种方法可以使用 maven-resources-plugin 提供的过滤,但对我来说感觉有点 hacky。

首先,您想要项目版本的任何文档都需要放在最终文档的单独位置(例如名为 doc-templates 的文件夹)。在这些文件中,将项目版本替换为 @project.version@ ,这是 Maven 在其过滤步骤中识别的标记。

然后您可以添加一个插件配置,将模板文档视为过滤资源并将它们输出到最终文档位置;例如:

<plugin>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>copy</id>
<phase>package</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/docs</outputDirectory>
<resources>
<resource>
<directory>doc-templates</directory>
<includes>
<include>file-with-version.md</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>

请注意,它将此执行的输出目录设置为 ${basedir}/docs ; ${basedir}为我解析到项目的根目录(pom.xml 所在的位置),因此此配置使 Maven 将资源输出到您的文档目录中。

使用 Maven 资源过滤的优点是您还可以在文档中自动包含其他变量(甚至系统变量!)。

您需要记住运行 mvn package 您提交文档之前,因为任何运行 Maven 的构建管道也会更新文档但不会提交它(除非您让它这样做)。

更新:我刚刚意识到如果你让上面的执行运行在 <phase>compile</phase> 上每次编译都会更新文档;这意味着您不太可能在推送之前忘记更新它。 YMMV.

关于maven - 在 github 页面中包含基于 pom.xml 的版本号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47936523/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com