私はsbt-assembly
で生成されたjarファイルのbase64でエンコードされたSHA-256ハッシュを計算する必要があるScalaプロジェクトに取り組んでいます。私はこれを実現するための簡単なScalaの方法を書かれている:File引数を取り、Fileを返すカスタムSBTタスクを定義する方法は?
def computeCodeHash(file: File): File = {
//..do some work and write the hash to a new file with a '.sha256' extension
}
は今、私はこのハッシュを計算するために呼び出すことができるSBTコマンドを作成する必要があります。
> codehash "target/scala-2.11/foo.jar"
と、そのタスクは、私のcomputeCodeHash
メソッドを呼び出します:私はこのような何かをできるようにしたいと思います。余分なボーナスオートメーションの点については、プラグインで作成されたタスクもcomputeCodeHash
メソッドを実行するようにビルドを拡張する方法を理解したいと思います。
私は入力タスクや設定、パーサーのドキュメントを読んでみましたが、SBTの知識は限られており、かなり基本的な作業の仕方を理解することができません。私もsbt-assembly
ソースコードを読んでみましたが、頭や尾を作ることができませんでした。
何か指摘していただければ幸いです。このような
おかげで、私はそう慣用的ではないが類似のものを持っていた私は、タスクがと統合を取得する方法を見つけ出すことができませんでした@ed 'アセンブリ' DefaultParserではfileParserを見つけました。これは、タブ補完で引数がベースディレクトリに対するファイルパスであることを知ることができるので便利です。 – anelson