问题标签 [jgitver]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
git - jgitver 插件,在 pom 中获取版本
我正在使用jgitver 库使用 Git 存储库的状态自动生成semver 。
我有一个多模块项目,其中模块是相互依赖的,这意味着如果我对一个模块进行更改,那么其他模块应该开始引用已更改模块的新版本。
所有模块都在同一个 Git 存储库中,因此 Git 中的任何更改都会更改所有模块的版本。以下是我的项目结构的示例
以下是我如何包含依赖模块的示例
由于在任何时候由 和 生成的版本都是jgitver
相同的,因为它们在同一个 Git 存储库中,所以我不想在所有模块中对版本进行硬编码。好像版本发生了变化,那么我将不得不手动更改所有模块中的版本以获取依赖关系。module1
common-module
common-module
是否有类似的变量${project.version}
可用于引用由 生成的当前版本jgitver
?
我希望配置module1
如下
git - jgitver - maven 插件:从 Git 提交派生版本,包括 Git SHA8 字符串和 SNAPSHOT 标记
我会尽量让这个问题简短明了:
使用 jgitver maven 插件,我可以轻松地从 Git 标签创建版本。默认情况下,我可以在 .pom 文件中使用的 ${jgitver.calculated_version} 变量的行为如下:
- 设置 Git 标签“v1.0.0”
版本:1.0.0 - 做 Git 提交
版本:1.0.1-SNAPSHOT
是否可以(如果可以,我怎么能)在版本号中包含提交哈希,像这样?
- 设置 Git 标签“v1.0.0”
版本:1.0.0-162ad57 - 做 Git 提交
版本:1.0.1-ff8cb8a-SNAPSHOT
重要的部分是来自简单(未标记)提交的版本号也以“SNAPSHOT”结尾。
maven - 在 tycho pomless 构建中使用 JGitVer
我想使用jgitver maven 插件来自动定义 Eclipse 插件的版本、功能、存储库,这些插件是在pomless模式下使用tycho构建的。
这3个插件的版本管理分别是:
- jgitver 根据 git 树和标签计算版本,创建 pom 的逻辑副本,设置新版本并将新 pom 关联到 maven reactor 中的当前插件。
- 对于 tycho,版本在 pom 和 manifest.mf 或 feature.xml 文件中定义。执行版本一致性检查。
- 当 pom 未定义时,pomless maven 使用清单或功能文件中定义的版本生成一个名为 .polyglot.build.properties 的临时 pom 文件。输入路径在此处定义并取决于 PolyglotModelUtil。
更简单的方法是 Jgitver 演变以在本地更新 feature.xml 和 manifest.MF。这将是一个坏主意,因为会修改不符合插件理念的本地文件。
更好的方法是 Jgitver 进化来生成临时 feature.xml 和 manifest.MF 文件,这些文件将使用计算版本进行更新。那么 tycho 和 tycho-pomless 应该被迫使用它们。
如果我成功设置新的 ModelProcessor.LOCATION 选项,这似乎是可能的
您认为这是解决此兼容性问题的有效方法吗?你看到替代品了吗?
谢谢你的帮助。
java - 使用 JGit 在 Java 中克隆 repo 时出现 AccessDeniedException
我正在以编程方式尝试使用 JGit API 克隆存储库。我正在使用以下代码,但是当我执行它时,出现错误。
我已经尝试了所有可能的解决方案,但我仍然无法解决问题。任何人都可以提供输入吗?
“ https://gitlab.wuintranet.net/fe/wu-content.git ”上的仓库应该被克隆,但它抛出了这个错误:
git - Jgitver maven 插件:始终计算标记提交上的 -SNAPSHOT 版本
这就是我所做的:
- 我承诺并推动某事
- 我去 Github 并在 master 上的最新提交上创建一个发布标签,比如 0.0.1
Jenkins 签出分支/tags/
Jgitver 声称:
Jgitver 配置 说:
在 master 分支上也会发生同样的情况。它似乎永远不会构建一个 0.0.1,它总是会构建一个 0.0.1-SNAPSHOT。
我做错了什么,但它是什么?
spring-boot - 在 maven 中使用 jgitver 和本地 repo 时 spring-boot-dependency 版本无效
当我将 spring-boot-starter-parent 与本地存储库和 jgitver 结合使用时,出现以下错误:
注意spring-boot-starter-parent 的unknown-version和 spring-boot- dependencies 的 0.0.0-27-a592e4fb-feature_gitlabci-dirty。0.0.0-27-...版本是jgitver计算出来的版本。看起来版本分辨率以某种方式搞砸了。如果我将本地存储库更改为项目之外的任何目录,它就会重新开始工作。如果我抑制 jgitver,它会再次开始工作。如果我在我的项目中更深入地定义本地存储库(如 maven.repo.local=x/y/z/.m2/repository,错误仍然存在。
我以这种方式在 pom.xml 中定义了父级:
我以这种方式运行我的 Maven:
如果我添加 jgitver.skip=true,一切正常。
我怀疑这可能与 spring-boot-starter 父级将其父级(spring-boot-dependencies)定义为相对于其位置的事实有关:
有没有人知道为什么会发生这种情况以及如何解决?
maven - 有没有办法在 Maven pom.xml 中插入所有 ${project.version} 变量?
我需要用${project.version}
pom.xml 中的实际值替换所有出现的 。
我可以用 . 来做到这一点maven-flatten-plugin
,但这将重写整个 pom.xml 而不仅仅是替换project.version
唯一的。
由于我想使用jgitver-maven-plugin
我不能使用resolveCiFriendliesOnly
flatten 插件的模式。
有没有一种简单的方法可以只替换整个 pom.xml 中的一个变量?flatten 插件中是否有另一个(隐藏的)选项可以做到这一点?
gitversion - 让 jgitver 使用标签
在以下场景中,我期望 jgitver 使用版本4.2.4-rc3-SNAPSHOT
(最后一个轻量级标签 + SNAPSHOT)。然而,这不会发生。
为什么它不使用标签,我怎样才能让它使用它?这里的目标是在标记一个分支之后,来自该分支的任何提交都使用该标记,即使 checkout 作为提交哈希也是如此。