一键生成代码框架设计和使用说明

1. 简介

        随着项目开发的规范逐渐落地,对应的项目目录结构要亟待需要进行统一,这样就可以使的所有的项目都有相同的工程目录结构,这样代码review,跨系统开发等都相对来说要容易很多。

2. 使用

        仅仅使用如下命令就可以生成对应的目录结构,步骤如下:

(1)在命令行输入mvn archetype:generate 命令,如下所示:

mvn archetype:generate -DarchetypeGroupId=com.ctfin.framework -DarchetypeArtifactId=code-framework -DarchetypeVersion=0.0.1-SNAPSHOT -DarchetypeCatalog=local

(2)根据命令提示输入对应的项目的groupId和artifactId,以及对应的appName和packageName等参数,就可以生产对应的项目了,如下图所示:

生成对应的项目目录结构如下图所示:

3. 设计和原理

3.1项目目录结构设计


模块之间的依赖关系如下:

模块功能介绍:

3.2实现原理说明

        利用mvn来生成对应的项目目录架构,下面将一步一步讲述这个实现的过程:

3.2.1新建项目

        在eclipse上新建一个mvn项目,选择maven-archetype-archetype,单机next进行下一步

3.2.2输入项目新建信息

        输入项目对应的groupId,artifactId和版本等信息,如下图所示:

3.2.3项目结构

        单击finish,对应的项目就建好了,如下图所示:

3.2.4项目pom.xml新增内容

<distributionManagement>

        <repository>

                <id>thirdparty</id>

                <name>ctfin_thirdparty</name>

                <url>http://192.168.1.202:9091/repository/thirdparty/</url>

        </repository>

</distributionManagement>

<build>

    <plugins>

                <plugin>

                    <groupId>org.apache.maven.plugins</groupId>

                    <artifactId>maven-archetype-plugin</artifactId>

                    <version>2.3</version>

                </plugin>

                <plugin>  <!-- 打源码 -->

                        <groupId>org.apache.maven.plugins</groupId>

                        <artifactId>maven-source-plugin</artifactId>

                        <version>2.4</version>

                        <configuration>

                                <attach>true</attach>

                        </configuration>

                    <executions>

                            <execution>

                                    <phase>compile</phase>

                                    <goals>

                                            <goal>jar</goal>

                                    </goals>

                            </execution>

                </executions>

        </plugin>

    </plugins>

</build>

3.2.4 Archetype.xml重命名

由于我们要建多模块的项目,则需要将META-INF/maven/archetype.xml重命名为archetype-metadata.xml,具体参见:https://maven.apache.org/guides/mini/guide-creating-archetypes.html和http://maven.apache.org/archetype/archetype-models/archetype-descriptor/archetype-descriptor.html

3.2.5新建模块结构

        可以在archetype-resources文件夹中新建新的模块(新的文件夹)

对应的archetype-resources/biz-service-impl/pom.xml文件的内容如下:

对应的archetype-resources/pom.xml定义:

GroupId,artifactId和version,appName在archetype-metadata.xml中定义如下:

3.2.6新建模块定义

        然后在archetype-metadata.xml中增加对应的模块定义:注意module定义中的id对应的是模块下面对应pom.xml中的${artifactId}的值

3.2.7执行项目编译打包部署命令

        模块都定义好之后,在这个项目的根目录下面执行mvn clean install命令

3.2.8根据新建结构生成新的项目

        根据项目的groupId,artifactId和version生成对应的新工程,按照这个项目结构,对应的命令如下:

mvn archetype:generate -DarchetypeGroupId=ctfin.framework -DarchetypeArtifactId=InduFramework -DarchetypeVersion=0.0.1-SNAPSHOT -DarchetypeCatalog=local

3.2.9将项目上传私仓

将项目jar包上传的私仓,通过如下命令:

mvn deploy:deploy-file -DpomFile=../pom.xml -DgroupId=com.ctfin.framework -DartifactId=code-framework -Dversion=0.0.1-SNAPSHOT -Dpackaging=jar -Dfile=code-framework-0.0.1-SNAPSHOT.jar -Dsources=code-framework-0.0.1-SNAPSHOT-sources.jar -Durl=http://192.168.1.202:9091/repository/thirdparty/ -DrepositoryId=thirdparty

4. 代码地址

https://github.com/lwjaiyjk/projectFrameworkGenerate

转载请说明出处

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,372评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,368评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,415评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,157评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,171评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,125评论 1 297
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,028评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,887评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,310评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,533评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,690评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,411评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,004评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,659评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,812评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,693评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,577评论 2 353

推荐阅读更多精彩内容

  • Maven编译代码的相关命令 第一、main目录下的主代码编写完毕后,使用Maven进行编译,在项目根目录下运行命...
    加油小杜阅读 1,190评论 0 2
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,651评论 18 139
  • 简介 概述 Maven 是一个项目管理和整合工具 Maven 为开发者提供了一套完整的构建生命周期框架 Maven...
    闽越布衣阅读 4,288评论 6 39
  • 引言 很多公司里的web项目是都是用maven管理,maven可以非常方便的管理项目的各种依赖,确实很好用,但是对...
    燃烧杯阅读 851评论 1 2
  • https://zhuanlan.zhihu.com/p/22433312Fetch API 是什么?能代替 AJ...
    大前端之路阅读 348评论 0 0