例としてhaxeを使用した自動アセンブリ番号付け

はじめに



現在、私はhaxe言語の主なツールの1つであるプロジェクトに取り組んでいます。 haxeの開発環境として、このプロジェクトでは、FlashDevelopを使用しています。 日中、プロジェクトは何度も組み立てられます。どのアセンブリが現在パブリックドメインにあるかを正確に知る必要があります。 これを行うには、アセンブリに番号を付ける必要があります。 haxeもFlashDevelopもビルド番号を生成する標準ツールを見つけられなかったため、この問題を解決するための特定のトリックを解決することを提案します。





トリック



最初に、次のコードを含むBuildクラスを作成します。



package ;

class Build {

public static var number:Int = 1;

}








これで、プロジェクトのどこでも、Buildクラスのnumberフィールドにアクセスしてビルド番号を確認できます。

例:

new Label(this, 10, height-20, Config.version+"."+Build.number, Colors.white, 12);







次のステップは、ビルド番号の増分を自動化することでした。 プロジェクトのルートに.buildファイルを作成します。このファイルには、num = 1(またはカウントを開始する番号)の1行が含まれます。



num=1







そして今、prebuild.batスクリプトは「汚い仕事」をしてくれます。 .buildファイルの隣にスクリプトを配置します。 このスクリプトは、既に.buildファイルにある番号に基づいて、現在のビルド番号を含むBuildクラスを作成します。 そして、それを1つ増やし、.buildを上書きします。



@echo off



set filename=.build

set hxclass=.\src\build.hx

call :read_settings %filename% || exit /b 1



set /a RESULT=NUM + 1



echo Build : %RESULT%



echo num=%RESULT%>%filename%

rem

echo package ; class Build { public static var number:Int = %RESULT%; }>%hxclass%

echo



exit /b 0



rem

rem .

rem :

rem %1 -

:read_settings



set fname=%1



rem

if not exist %fname% (

echo FAIL:

exit /b 1

)



for /f "eol=# delims== tokens=1,2" %%i in (%fname%) do (

set %%i=%%j

)



exit /b 0








「プロジェクトの一般的なアセンブリの前にprebuild.batを実行する方法」という質問に対する答えは残っています。

FlashDevelop(他のIDEの場合)の場合、これは次のように行われます:Project-> Propertiesメニューを開き、次にBuildタブとPre-buildコマンドラインフィールドを開き、次の$(ProjectDir)\ p​​rebuild.batを書き込みます。



これで、トリックは完了です。 各ビルドの前に、Buildクラスは、数値フィールドの新しい値で上書きされ、目的の結果が提供されます。



PS read_setting関数コードは、サイトrsdn.ruから取得されます。



記事は、ハブに登録せずに同行者のリクエストで公開されます



All Articles