問題タブ [mavanagaiata]
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 - 現在のタグ、ブランチ、およびコミットを取得する単一の Git コマンドはありますか?
現在、3 つのコマンドのコレクションを使用して、現在のタグ、ブランチ、最新のコミットの日付と SHA1 を取得しています。
次のようなものが出力されます。
正直なところ、私はこれでまったく問題ありません。しかし、私は Maven からこれらのコマンドを使用しています。以前に Maven を使用したことがある人は、外部コマンドのようなものがどれだけ POM を肥大化させるかを知っています。pom.xml をスリム化し、実行時間を少し短縮したいだけです。
java - Maven プロジェクトのマニフェストの Implementation-Version フィールドで git SHA1 値を取得する方法は?
git と maven と logback を使用します。
これは、ログのスタック トレースが、スタック トレースの各行を含む jar の実装バージョンを示すことを意味します (例については、 http://logback.qos.ch/reasonsToSwitch.html#packagingDataを参照してください)。
そのため、現在のビルドの SHA1 をビルド中のアーティファクトのマニフェストのフィールドにパッケージ化できれば、ソース内の個々の行を含むアーティファクトを生成した正確なソースを git から簡単に見つけることができます。
http://maven.apache.org/shared/maven-archiver/examples/manifestEntries.htmlによると、これを行う方法<key>value</key>
は、pom の maven-jar-plugin 部分に行を追加することです。これは私の場合、
その結果、
https://github.com/koraktor/mavanagaiataから SHA1 を取得できる場合、これを MANIFEST.MF ファイルで正しく設定するにはどうすればよいですか?
git - gitブランチに基づいてMavenプロファイルを選択します
現在のgitブランチに基づいてプロファイルを選択することは可能ですか?
たとえば、マスターブランチにいる場合は、「本番」プロファイルが選択されます。開発ブランチの場合は、「開発」プロファイルを選択します。
プロパティを提供するmavanagaiataプラグインを見つけましたmvngit.branch
が、セクションでは使用できません<profiles>
。
このようなことは可能ですか?それとももっと良い方法がありますか?構築するブランチに応じて、正しいプロファイルを自動的に選択する簡単な方法が必要です。
git - git ブランチから Maven アーティファクト バージョンを派生させる
基本的に、git の現在のブランチから外部で定義されたモジュールのアーティファクト バージョンが必要であることを意味するワークフロー要件があります。
つまり、git の master ブランチにいる<version>master-...</version>
場合は必要であり、bugfixX ブランチにいる場合は<version>bugfixX-....</version>
、この pom.xml 用に生成されたアーティファクトが必要です。
https://github.com/koraktor/mavanagaiataが SHA-1 ハッシュをプロパティとして提供できることを以前に発見しました。ドキュメントから、ブランチも提供できるようです。プロパティを設定<version>${our.version}</version>
して pomに入れるだけのプロセスです。もしこれが可能なら、私は pom.xml が動作するのを見たいと思っています (そしてそれに対して 500 ポイントの報奨金も与えられます)。
そうでない場合は、前処理または「git checkout」のいずれかを使用して、いくつかのフックで追加の魔法を実行していると思います(まだ試していませんが、動作するコードも素晴らしいでしょう)。
トップレベルの pom があり、これを実行して ".." にプロパティ ファイルを生成してから、私が求めているこの機能が必要なモジュールをビルドします。
これを解決する方法について何か提案はありますか?