idea 创建 maven 父子工程 原创
春节不停更,此文正在参加「星光计划-春节更帖活动」
日积月累,水滴石穿 😄
在工作中,准备从零开始搭建一个项目,于是,本文产生了。
创建父工程
file—–>new—->project ,注意选择 maven,Create from archetype
不要勾选。
然后点击 next 按钮,填写 GroupId 、ArtifactId 完成项目创建。
-
GroupId 是项目组织唯一的标识符,实际对应着包的结构。GroupId一般分为三段。
- 第一段:域。常见的有:cn(china),org(非营利组织),com(商业组织)。
- 第二段:组织。比如说阿里,就是 alibaba。
- 第三段:子项目。对应项目名称。比如说:org.springframework.boot,其中 boot 就是子项目。当然第三段可以不写。
-
ArtifactId 是项目的唯一的标识符,实际对应项目的名称,ArtifactId 分为两段。
- 第一段:其实就是子项目,也就是项目名称。
- 第二段:子项目还能继续细分,比如公用项目,那就是 awesome-common。
比如我创建个人项目,我会将 GroupId 设置为cn.cxyxj,cn表示域为中国,cxyxj是我笔名缩写,ArtifactId 设置为 awesome(牛逼),表示你这个项目的名称是 awesome。
创建完成,项目结构如下:
父工程的 src 目录是没有作用,可以删除。
父工程创建完成了,接下来就是创建子工程了。
创建子工程
在父工程上进行右击,选择 new -》Module。
还是选择 maven
项目,Create from archetype
不要勾选。然后点击 next
按钮。
注意要选择 parent
。
点击 Finish
按钮,项目创建完成!
那怎么看这个父子工程是否创建完成呢?
awesome-api
项目pom.xml
需要包含红框中的标签<parent>
awesome
项目的pom.xml
需要包含红框中的标签<modules>
看到如上标签说明父子工程创建成功,然后就是往工程中添砖加瓦了。
搭建 Spring Boot
我们先在父工程 awesome
的 pom.xml 中加入 spring-boot-starter-web
依赖。
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.4.RELEASE</version>
<relativePath />
</parent>
然后在子工程awesome-api
的 pom.xml 中加入 spring-boot-starter-parent
依赖。
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
创建项目文件夹,可以看到小杰的命名。
配置项目启动类
@SpringBootApplication(scanBasePackages = "cn.cxyxj.awesome")
public class AwesomeApplication {
public static void main(String[] args) {
SpringApplication.run(AwesomeApplication.class, args);
}
}
配置自定义banner
配置
在 resource
目录加入 banner.txt
文件。内容如下:
${AnsiColor.BRIGHT_GREEN}
:::'###::::'##:::::'##:'########::'######:::'#######::'##::::'##:'########:
::'## ##::: ##:'##: ##: ##.....::'##... ##:'##.... ##: ###::'###: ##.....::
:'##:. ##:: ##: ##: ##: ##::::::: ##:::..:: ##:::: ##: ####'####: ##:::::::
'##:::. ##: ##: ##: ##: ######:::. ######:: ##:::: ##: ## ### ##: ######:::
#########: ##: ##: ##: ##...:::::..... ##: ##:::: ##: ##. #: ##: ##...::::
##.... ##: ##: ##: ##: ##:::::::'##::: ##: ##:::: ##: ##:.:: ##: ##:::::::
##:::: ##:. ###. ###:: ########:. ######::. #######:: ##:::: ##: ########:
..:::::..:::...::...:::........:::......::::.......:::..:::::..::........::
Application Version: ${application.formatted-version}
Spring Boot Version: ${spring-boot.formatted-version}
${AnsiColor.DEFAULT}
${AnsiColor.BRIGHT_GREEN} 、${AnsiColor.DEFAULT}
:设置控制台中输出内容的颜色,可以自定义。代码定义可以具体参考org.springframework.boot.ansiAnsiColor
,颜色与编码之间的关系可以参考:颜色转换${application.formatted-version}
:格式化的{application.version}版本信息,也就是Spring
的版本。${spring-boot.formatted-version}
:格式化的{spring-boot.version}版本信息。
启动类内容修改如下:
public static void main(String[] args) {
// 启动颜色格式化
AnsiOutput.setEnabled(AnsiOutput.Enabled.ALWAYS);
new SpringApplicationBuilder(AwesomeApplication.class)
.main(SpringVersion.class) // 这个是为了可以加载 Spring 版本
.bannerMode(Banner.Mode.CONSOLE)// 控制台打印
.run(args);
}
启动效果
生成 banner 在线工具
找到了生成的工具,然后为了生成自己想要的效果,就差不多找了十几分钟。为了让大家节省时间,这里推荐一下小杰用的字体(如果觉得不错就可以用),小杰用的是第二个网站,字体为 banner3-D。