idea 创建 maven 父子工程

2,890 阅读3分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第 4 天,点击查看活动详情

日积月累,水滴石穿 😄

在工作中,准备从零开始搭建一个项目,于是,本文产生了。

创建父工程

file—–>new—->project ,注意选择 maven,Create from archetype不要勾选。

image.png 然后点击 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。 image.png 创建完成,项目结构如下:

image.png

父工程的 src 目录是没有作用,可以删除。

父工程创建完成了,接下来就是创建子工程了。

创建子工程

在父工程上进行右击,选择 new -》Module。 image.png 还是选择 maven项目,Create from archetype不要勾选。然后点击 next按钮。

注意要选择 parentimage.png 点击 Finish按钮,项目创建完成!

那怎么看这个父子工程是否创建完成呢?

  • awesome-api项目pom.xml需要包含红框中的标签 <parent> image.png
  • awesome项目的 pom.xml需要包含红框中的标签<modules> image.png

看到如上标签说明父子工程创建成功,然后就是往工程中添砖加瓦了。

搭建 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>

创建项目文件夹,可以看到小杰的命名。 image.png

配置项目启动类

@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);
}

启动效果

image.png

生成 banner 在线工具

找到了生成的工具,然后为了生成自己想要的效果,就差不多找了十几分钟。为了让大家节省时间,这里推荐一下小杰用的字体(如果觉得不错就可以用),小杰用的是第二个网站,字体为 banner3-D。

image.png

参考文献


  • 如你对本文有疑问或本文有错误之处,欢迎评论留言指出。如觉得本文对你有所帮助,欢迎点赞和关注。