Maven的配置:

<plugins>
  <plugin>
    <groupId>pl.project13.maven</groupId>
    <artifactId>git-commit-id-plugin</artifactId>
    <version>4.0.0</version>
    <executions>
      <execution>
        <goals>
          <goal>revision</goal>
        </goals>
      </execution>
    </executions>
    <configuration>
      <verbose>true</verbose>
      <dateFormat>yyyy-MM-dd HH:mm:ssZ</dateFormat>
      <generateGitPropertiesFile>true</generateGitPropertiesFile>
    </configuration>
  </plugin>
</plugins>

打包后会在jar包生成git.properties文件

获取git提交commit SHA_Vue

获取git提交commit SHA_git_02

随后可以通过代码获取提交hash,

import java.io.IOException;import java.io.InputStream;
import java.util.Properties;

public class Main {
  public static void main(String[] args) {
    // 读取git.properties文件
    try (InputStream inputStream = Main.class.getClassLoader().getResourceAsStream("git.properties")) {
      Properties properties = new Properties();
      properties.load(inputStream);
      
      // 获取commit SHA
      String commitSHA = properties.getProperty("git.commit.id.abbrev");
      System.out.println("Commit SHA: " + commitSHA);
      
      // 在这里进行进一步的操作,比如将commit SHA写入其他文件
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
}

前端配置如下:

要将Git提交的commit SHA打入Vue打包文件中,你可以使用Webpack插件来自动化这个过程。下面是一种可能的解决方案:

  1. 确保你的Vue项目已经连接到Git仓库,并且安装了Webpack作为构建工具。
  2. 安装

git-revision-webpack-plugin插件,它可以帮助你在打包过程中获取Git提交的信息。可以通过运行以下命令进行安装:

Copy Codenpm install git-revision-webpack-plugin --save-dev
  1. 在webpack配置文件中添加插件的配置。找到或创建一个名为

webpack.config.js(或类似名称)的文件,并按照下面的示例进行配置:

javascriptCopy Codeconst GitRevisionPlugin = require('git-revision-webpack-plugin');module.exports = {
  // ...其他配置
  plugins: [
    new GitRevisionPlugin({
      commithashCommand: 'rev-parse --short HEAD' // 获取commit SHA的命令
    })
  ]
};

确保根据实际情况设置commithashCommand选项以获取commit SHA。上述示例使用的是git rev-parse --short HEAD命令来获取缩短的commit SHA。

运行Vue项目的打包命令。根据你的项目配置和构建工具,命令可能会有所不同,但通常是

npm run build。

  1. 在打包期间,Webpack插件会自动将commit SHA注入到生成的打包文件中。通常情况下,它会将commit SHA作为全局变量或注入到某个模块中。
  2. 在Vue代码中访问commit SHA。你可以通过在Vue组件中引用该全局变量或导入包含commit SHA的模块来访问commit SHA。例如:

javascriptCopy Code// 在Vue组件中直接使用全局变量console.log(process.env.COMMIT_SHA);

// 导入包含commit SHA的模块并使用它
import commitInfo from './commitInfo';
console.log(commitInfo.commitSHA);

确保根据实际情况调整上述代码中的路径和变量名。