java - 如何将 Git 分支名称作为 pom.xml 中依赖版本的变量

标签 java git maven jar merge

所以我的问题是...如何使用我当前所在的分支名称作为项目中依赖项版本的一部分?

从这里开始就是我所拥有的。

我有三个分支机构。大师,阿尔法和贝塔。

在每个项目下,都有一个通用的依赖项,称为automation-jar.jar ...。还有两个其他客户端项目使用该 jar 文件作为依赖项。

示例: Automation-jar pom.xml 文件

<groupId>com.example.jarfile</groupID>
<artifactId>example-jar</artifactId>
<version>${branch.name}-SNAPSHOT</version>

示例:客户端项目 1 - pom.xml(使用自动化 jar 作为依赖项)

<dependency>
  <groupId>com.example.jarfile</groupID>
  <artifactId>example-jar</artifactId>
  <version>${branch.name}-SNAPSHOT</version>
</dependency>

我可以使用指定的“branch.name”部署 jar 文件,没问题......我的问题是,如何使版本快照足够通用,不会导致 Git 中的 merge 冲突?

例如,如果我硬编码 <version>master-SNAPSHOTAlpha-SNAPSHOT , merge 分支时会产生冲突。

有什么想法吗?

提前致谢!

最佳答案

尝试包含以下插件

<build>
    <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>buildnumber-maven-plugin</artifactId>
            <version>1.4</version>
            <executions>
                <execution>
                    <phase>validate</phase>
                    <goals>
                        <goal>create</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

然后您可以使用 ${scmBranch} 作为branchName

http://www.mojohaus.org/buildnumber-maven-plugin/usage.html

<dependency>
  <groupId>com.example.jarfile</groupID>
  <artifactId>example-jar</artifactId>
  <version>${scmBranch}-SNAPSHOT</version>
</dependency>

关于java - 如何将 Git 分支名称作为 pom.xml 中依赖版本的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39841067/

相关文章:

java - NoClassDefFoundError : org/hibernate/ejb/HibernatePersistence

maven-2 - maven2 : excluding directory from WAR

java - Eclipse:将外部类/jar 文件添加到构建路径时出现错误: "XYZ Cannot be resolved to a type"

java - 我应该如何从缓冲阅读器中读取内容?

由于不存在的大文件导致 git push 错误

Git - 如何在功能分支中拆分代码,以便将来从 master 进行 merge/ rebase 时不会从功能分支中删除代码

c++ - 连接到远程存储库并获取数据

java - 在 "mvn install"期间显示一个警告

java - spring boot CrudRepo 定义一个bean

java - 在 java Swing 中使用特定 JButtons 在容器上垂直滚动