Gradleプロトタイプテンプレートツール調査
グループの学生が新しいプロジェクトを迅速に作成し、フレームワークと構成の一貫性を維持するために、テンプレートエンジニアリングを維持しました.次に、新しいプロジェクトを迅速に生成するには、使いやすいツールが必要です.
テンプレートエンジニアリングはGradleに基づいており、Maven Archetypeは使えません.別途探す必要があります.
ツールが満たす条件テンプレート工事は更新が必要で、直接ユニットテストを走ることができるので、ツールは工事構造を制限することができず、テンプレート工事にこのツール に適応させることができない.テンプレート工事は社内ネットワークに置かれているため、ツールはテンプレートをツールが自作したパブリックネットワーク倉庫 にアップロードすることを強制することはできない.
ネット上でいくつかのツールを探して、今探し当てたのはあまり要求に合いません gradle-archetype-plugin:条件1 に適合しない yeoman:条件2 に合致しない
その後、この問題を解決するために小さなスクリプトと操作規範を独自に構築しました.テンプレートエンジニアリング:1)パッケージ名の一意の識別は をカスタマイズ可能である.自己構築dup_を実行architype.sh新規プロジェクト作成 IDEで新しいプロジェクトを開き、 を変更する.
dup_architype.shの大まかな実行フロー:テンプレートエンジニアリングを指定された新しいプロジェクトの所在経路にコピーし、不要なディレクトリ を排除する名前変更 置換プロジェクトファイルの である.
dup_architype.sh内容:
このスクリプトのSRC/TARGET/PKGNAMEは、実行前に変更する必要があります.意味は次のとおりです. SRC:テンプレートエンジニアリング絶対パス TARGET:ターゲットアイテム絶対パス PKGNAME:ターゲット項目の一意の識別、パッケージ名用、comを含まない.xyz.このようなプレフィックス スクリプトプリセットプロジェクトはGradle/Git/intellijIDEAを使用し、コピーする必要のないディレクトリはrsyncパラメータで除外されています.その他の除外するディレクトリは追加できます--excludeは を自動的に除外します.パッケージ名の唯一のIDは をカスタマイズできます.
実際に使うとまだ便利で、簡単で効果的です.
テンプレートエンジニアリングはGradleに基づいており、Maven Archetypeは使えません.別途探す必要があります.
ツールが満たす条件
ネット上でいくつかのツールを探して、今探し当てたのはあまり要求に合いません
その後、この問題を解決するために小さなスクリプトと操作規範を独自に構築しました.
prjName
を使用し、カスタマイズ可能であり、2)構成が必要な場所注釈に[config]
のマークを付け、[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は、実行前に変更する必要があります.意味は次のとおりです.
prjName
(全体パッケージ名com.xyz.prjName)で、実際に使うとまだ便利で、簡単で効果的です.