%%{init:{'theme':'base','themeVariables':{'primaryColor':'#6A7FAB','primaryTextColor':'#FAFBF9','primaryBorderColor':'#6A7FAB','lineColor':'#6A7FABCC','textColor':'#6A7FABCC','fontSize':'20px','padding':0}}}%% %%{ init: { 'flowchart': { 'nodeSpacing': 10, 'rankSpacing': 100 } } }%%
 <subb>https://docs.gradle.org/current/userguide/build_lifecycle.html</subb>
--- # headless <div class="corner-triangle"><div class="corner-triangle-text">雑談</div></div> ## SW開発の基本テクニック GUIを持たない状態で起動するモードのこと 大きなシステム開発でよく採用されている ```shell $ chrome --headless # GUIなしでChromeが立ち上がる ``` ## as サーバモード サーバとして起動する場合はGUIがいらない ## for テストの軽量化 GUIに無関係なテストはheadlessモードでテスト ## for 自動操作 GUIではなくCUI経由で対象SWを動かしたい
ビルドツールに規約が存在する =規約に従うプロジェクトを自動で生成できる
規約に従うなら何も書かなくて良い
--- # PyBuilderを試す ## pyプロジェクトの生成 ```shell $ mkdir py-trial; cd py-trial $ pyb --start-project Project name (default: 'py-trial') : Source directory (default: 'src/main/python') : Docs directory (default: 'docs') : Unittest directory (default: 'src/unittest/python') : Scripts directory (default: 'src/main/scripts') : Use plugin python.flake8 (Y/n)? (default: 'y') : Use plugin python.coverage (Y/n)? (default: 'y') : ... ``` ## 簡単なソースコードを追加 ```shell $ echo 'print("hi")' > src/main/python/main.py ``` --- ## ビルド ```shell $ pyb ... Build finished at 2025-05-05 13:42:14 Build took 4 seconds (4787 ms) ``` ## ビルド結果の確認 ```shell $ tree target/dist target/dist └── py-trial-1.0.dev0 ├── main.py ├── scripts └── setup.py ``` PyBuilderの利用プロジェクトは多くはない おすすめというわけではない Pythonではデファクトがまだなさそう 選択肢が多い (根本的にpyはビルドが楽)
--- # バージョンロック ## 宣言した依存が常に正とは限らない `pandas>=2.0`という依存を宣言して開発を続ける いつのまにか`p --- 依存解決自体は標準でpip gradle 作法の理解にも繋がる `src/main/java` ? 版管理との組み合わせ ソース テスト ビルド方法 自己完結 自動化が可能