Gradleプロトタイプテンプレートツール調査


グループの学生が新しいプロジェクトを迅速に作成し、フレームワークと構成の一貫性を維持するために、テンプレートエンジニアリングを維持しました.次に、新しいプロジェクトを迅速に生成するには、使いやすいツールが必要です.
テンプレートエンジニアリングはGradleに基づいており、Maven Archetypeは使えません.別途探す必要があります.
ツールが満たす条件
  • テンプレート工事は更新が必要で、直接ユニットテストを走ることができるので、ツールは工事構造を制限することができず、テンプレート工事にこのツール
  • に適応させることができない.
  • テンプレート工事は社内ネットワークに置かれているため、ツールはテンプレートをツールが自作したパブリックネットワーク倉庫
  • にアップロードすることを強制することはできない.
    ネット上でいくつかのツールを探して、今探し当てたのはあまり要求に合いません
  • gradle-archetype-plugin:条件1
  • に適合しない
  • yeoman:条件2
  • に合致しない
    その後、この問題を解決するために小さなスクリプトと操作規範を独自に構築しました.
  • テンプレートエンジニアリング:1)パッケージ名の一意の識別はprjNameを使用し、カスタマイズ可能であり、2)構成が必要な場所注釈に[config]のマークを付け、
  • をカスタマイズ可能である.
  • 自己構築dup_を実行architype.sh新規プロジェクト作成
  • IDEで新しいプロジェクトを開き、[config]を検索して手動で構成を変更する必要があるすべての場所を見つけ、注釈およびコンテキストに基づいて
  • を変更する.
    dup_architype.shの大まかな実行フロー:
  • テンプレートエンジニアリングを指定された新しいプロジェクトの所在経路にコピーし、不要なディレクトリ
  • を排除する
  • 名前変更prjNameこの一意にカスタマイズされたビジネス名
  • 置換プロジェクトファイルのprjNameは、カスタムビジネス名
  • である.
    dup_architype.sh内容:
    # template project absolute path
    SRC=/Users/sandynz/Documents/projects/boottemp/
    # target project absolute path
    TARGET=/Users/sandynz/Documents/projects/prj1
    # target project package name
    PKGNAME=prj1
    # copy
    echo 'start copy'
    rsync -avz --exclude out --exclude build --exclude target --exclude .git --exclude .gradle --exclude .idea $SRC $TARGET
    # rename dir
    echo 'start rename dir'
    find $TARGET -name prjName -execdir mv {} $PKGNAME ';'
    # replace content
    echo 'start replace content'
    find $TARGET -type f -exec sed -i '' "s/prjName/$PKGNAME/g" {} \;

    このスクリプトのSRC/TARGET/PKGNAMEは、実行前に変更する必要があります.意味は次のとおりです.
  • SRC:テンプレートエンジニアリング絶対パス
  • TARGET:ターゲットアイテム絶対パス
  • PKGNAME:ターゲット項目の一意の識別、パッケージ名用、comを含まない.xyz.このようなプレフィックス
  • スクリプトプリセット
  • プロジェクトはGradle/Git/intellijIDEAを使用し、コピーする必要のないディレクトリはrsyncパラメータで除外されています.その他の除外するディレクトリは追加できます--excludeは
  • を自動的に除外します.
  • パッケージ名の唯一のIDはprjName(全体パッケージ名com.xyz.prjName)で、
  • をカスタマイズできます.
    実際に使うとまだ便利で、簡単で効果的です.