快速开始
在本节中,你将找到快速开始使用技术组件的分步指南。
环境准备
在开始使用技术组件之前,你需要准备好以下环境:
:::success 环境要求
-
Azul OpenJDK 21.x 下载地址:https://www.azul.com/downloads/?version=java-21-lts#zulu
-
Apache Maven 3.9.x 下载地址:https://maven.apache.org/download.cgi
-
Git 下载地址:https://git-scm.com/downloads
-
IntelliJ IDEA 下载地址:https://www.jetbrains.com/idea/download/
-
Docker Desktop 下载地址(可选):https://www.docker.com/products/docker-desktop :::
创建你的第一个应用
- 使用IDEA创建一个新的Maven项目。
- 在项目的根
pom.xml文件中做如下改动:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!-- 修改parent:继承平台组件父工程 -->
<parent>
<groupId>cn.com.rydeen.base</groupId>
<artifactId>rydeen-dependencies</artifactId>
<version>4.6.0</version>
<relativePath />
</parent>
<name>demo-project</name>
<description>演示工程</description>
<groupId>cn.com.rydeen.platform</groupId>
<artifactId>platform-demo</artifactId>
<!--
推荐版本号跟着平台组件父工程子版本号走,比如:4.1.x、4.2.x
每个大版本下的子版本都是对应功能的迭代,不同大版本之间可能会
有较大的改动,为了便于识别当前使用的平台组件版本,推荐使用技
术平台组件的版本号作为当前工程的版本号。
-->
<version>4.6.0</version>
<packaging>pom</packaging>
<modules>
<module>demo-dependencies</module>
<module>demo-service</module>
</modules>
<!-- 添加:私服仓库配置(否则拉不到平台组件) -->
<repositories>
<repository>
<id>platform-snapshot</id>
<url>https://nexus.rydeen.com.cn/repository/platform-snapshot/</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<repository>
<id>platform-release</id>
<url>https://nexus.rydeen.com.cn/repository/platform-release/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
</project>
- 在IDEA中创建一个新的Maven模块
demo-dependencies,并在pom.xml文件中添加如下依赖:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!-- 修改parent:继承演示工程父工程 -->
<parent>
<groupId>cn.com.rydeen.platform</groupId>
<artifactId>platform-demo</artifactId>
<version>4.6.0</version>
<relativePath>../pom.xml</relativePath>
</parent>
<artifactId>demo-dependencies</artifactId>
<packaging>pom</packaging>
<!-- 添加:平台组件的依赖管理 -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>cn.com.rydeen.component</groupId>
<artifactId>rydeen-component-dependencies</artifactId>
<version>${middle.platform.version}</version>
<scope>import</scope>
<type>pom</type>
</dependency>
</dependencies>
</dependencyManagement>
<!--
Maven的编译插件配置在技术平台父工程中已经定义,在当前项目中仅需引用即可,
除Docker打包插件外,无需再编写Maven编译插件配置,具体请通过IDEA快速定位
功能跳转到rydeen-dependencies工程中查看,比如下列配置,注意配置在当前
工程中的所有plugin都是在演示工程中全局生效的,因为其他模块都是从本依赖管理
模块中继承的。
-->
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
- 在IDEA中创建一个新的Maven模块
demo-service,并在pom.xml文件中做如下修改: 
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>cn.com.rydeen.platform</groupId>
<artifactId>demo-dependencies</artifactId>
<version>4.1.0</version>
<relativePath>../demo-dependencies/pom.xml</relativePath>
</parent>
<artifactId>demo-service</artifactId>
<packaging>jar</packaging>
<dependencies>
<!-- 数据库组件 -->
<dependency>
<groupId>cn.com.rydeen.component</groupId>
<artifactId>rydeen-component-dao</artifactId>
</dependency>
<!-- Web Mvc 组件 -->
<dependency>
<groupId>cn.com.rydeen.component</groupId>
<artifactId>rydeen-component-web</artifactId>
</dependency>
<!-- 其它更多组件在后续章节中介绍 -->
</dependencies>
<build>
<plugins>
<!-- Docker 打包插件,使用本插件需要确保您的机器上安装了 Docker Desktop -->
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>jib-maven-plugin</artifactId>
<configuration>
<allowInsecureRegistries>true</allowInsecureRegistries>
<from>
<image>${base.image.url}</image>
<credHelper>docker-credential-desktop</credHelper>
<auth>
<username>robot$platform+deploy</username>
<password>JJmrjzN6vXafXpBaQf75Jd4lsM29ESae</password>
</auth>
</from>
<to>
<image>${harbor.url}/platform/${project.artifactId}</image>
<credHelper>docker-credential-desktop</credHelper>
<tags>
<tag>${project.version}</tag>
<tag>latest</tag>
</tags>
<auth>
<username>robot$platform+deploy</username>
<password>123456</password>
</auth>
</to>
<container>
<mainClass>cn.com.rydeen.gateway.GatewayApplication</mainClass>
<creationTime>USE_CURRENT_TIMESTAMP</creationTime>
<labels>
<maintainer>jinyang.wang@rydeen.com.cn</maintainer>
<name>${project.name}</name>
<description>${project.description}</description>
</labels>
<!-- 容器内部环境变量 -->
<environment>
<TZ>Asia/Shanghai</TZ>
</environment>
<ports>
<!-- 暴露的服务端口 -->
<port>9500</port>
</ports>
<jvmFlags>
<jvmFlag>-Xmx8g</jvmFlag>
<jvmFlag>--enable-preview</jvmFlag>
<jvmFlag>--add-opens=java.base/java.lang=ALL-UNNAMED</jvmFlag>
<jvmFlag>--add-opens=java.base/java.io=ALL-UNNAMED</jvmFlag>
<jvmFlag>--add-opens=java.base/java.util=ALL-UNNAMED</jvmFlag>
<jvmFlag>--add-opens=java.base/java.util.concurrent=ALL-UNNAMED</jvmFlag>
<jvmFlag>--add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED</jvmFlag>
<jvmFlag>--add-opens=java.base/java.lang.reflect=ALL-UNNAMED</jvmFlag>
<jvmFlag>--add-opens=java.base/java.util=ALL-UNNAMED</jvmFlag>
<jvmFlag>--add-opens=java.base/java.math=ALL-UNNAMED</jvmFlag>
</jvmFlags>
</container>
</configuration>
<executions>
<execution>
<id>package</id>
<phase>package</phase>
<goals>
<goal>dockerBuild</goal>
</goals>
</execution>
<execution>
<id>install</id>
<phase>install</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
- 编写dao、service、controller等业务代码后,运行即可启动服务,如果需要打包请执行
mvn clean package命令。
至此,你已经完成了一个简单的技术组件的使用,接下来你可以继续学习更多的技术组件的使用方法。
示例工程
