这是一个大胆的决定
ここがナビゲーションです
- テクノロジースタック
- 開発ツール
- 1. Gradle 親子プロジェクト (`deity`) を作成します
- 2. gitee ウェアハウスを作成し、リモート エンドにプッシュします。
- 3.Nacosサービス登録 SpringCloud Alibaba
テクノロジースタック
テクノロジー | バージョン |
---|---|
スプリングブーツ | 3.0.2 |
春の雲 | 2022.0.2 |
春雲アリババ | 2022.0.0.0-RC2 |
mybatis-plus-ブートスターター | 3.5.3.1 |
mysql-コネクタ-java | 8.0.32 |
開発ツール
テクノロジー | バージョン |
---|---|
ジャワ | 17 |
グラドル | 7.6.1 |
アイデア | 2022.2.4 |
Nvcat | 15 |
MySQL | 8.0.32 |
1. Gradleの親子プロジェクトを作成する( deity
)
1.0 簡単なプロセスの概略図
- IDEA を開いて SpringBoot プロジェクトを作成する
- 親プロジェクトの src モジュールを削除します。
- 新しいサブプロジェクトを 2 つ作成します (新しいサブプロジェクトを作成すると、親プロジェクトの src ファイルが再作成されます。削除するだけです)。
- サブ項目:
mall-Ares
- サブ項目:
mall-angel
- サブ項目:
- 親の
deity
build.gradle 設定のグローバル設定 - 子
mall-Ares 和 mall-angel
build.gradle は、依存する jar を導入する責任があります。
1.1. IDEA の主なアイコン
1.1.1 プロジェクト構造図
1.1.2 IDEA での Gradle 設定
1.2、deity
親プロジェクトの build.gradle ファイル
//所有buildscript{}块都必须出现在脚本中任何插件{}块之前
buildscript{
//构建gradle脚本自身需要的资源,可以声明的资源包括依赖项、第三方插件、maven仓库等等
//统一依赖版本管理
ext{
mysqlVersion = "8.0.32" //mysql
fastjsonVersion = "2.0.29" //fastjson
lombokVersion = '1.18.26' //lombok
springBootVersion= '3.0.2' //springBoot
springCloudVersion= '2022.0.2' //springCloud
springCloudAlibabaVersion='2022.0.0.0-RC2'//cloudAlibaba 2022.0.0.0-RC2
mybatisPlusVersion = '3.5.3.1' //mybatisPlus
}
//buildscript脚本构建时需要去寻找的仓库
repositories {
//从前往后顺序执行,找不到就向后查找
// mavenLocal() //从maven本地仓库下载jar到gradle仓库
maven {
url 'https://maven.aliyun.com/repository/public/' }
maven {
url 'https://maven.aliyun.com/repository/grails-core'}
maven {
url 'https://maven.aliyun.com/repository/google/' }
maven {
url 'https://maven.aliyun.com/repository/jcenter/' }
maven {
url "https://mvn.getui.com/nexus/content/repositories/releases/" }
maven {
url 'http://mirrors.huaweicloud.com/repository/maven/'
allowInsecureProtocol = true
}
mavenCentral()
}
//构建用到的插件
dependencies {
classpath 'io.spring.gradle:dependency-management-plugin:1.1.0'//maven方式插件
}
}
//插件要在最上边初始化
plugins{
id 'org.springframework.boot' version '3.0.2'
id 'io.spring.dependency-management' version '1.1.0'//创建于 2022 年 10 月 18 日。 2023.05.08目前为最新版本
id 'idea'
}
//针对所有project的配置,包含根项目,除此之外还有subprojects 和 project,感兴趣的童鞋可以自行百度查阅
allprojects{
apply plugin: 'java' //项目是java项目
apply plugin: 'idea' //项目是idea项目
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management' //类似于maven的版本管理方式
group = 'com.dage'
version = '0.0.1-SNAPSHOT'
//jdk版本
sourceCompatibility = '17'
targetCompatibility = '17'
//必须在插入 java插件后 执行该命令
configurations {
compileJava{
extendsFrom annotationProcessor
}
}
//所有project项目的 jar获取方式
tasks.withType(JavaCompile) {
options.encoding = "UTF-8"
options.deprecation = true
}
//全局配置时查找依赖的使用
repositories{
//从前往后顺序执行,找不到就向后查找
maven {
url 'https://maven.aliyun.com/repository/public/' }
maven {
url 'https://maven.aliyun.com/repository/grails-core'}
maven {
url 'https://maven.aliyun.com/repository/google/' }
maven {
url 'https://maven.aliyun.com/repository/jcenter/' }
maven {
url "https://mvn.getui.com/nexus/content/repositories/releases/" }
maven {
url 'http://mirrors.huaweicloud.com/repository/maven/'
allowInsecureProtocol = true
}
mavenCentral()
}
}
subprojects{
// 子项目配置(可以理解为子模块的全局配置)
sourceCompatibility = '17'
targetCompatibility = '17'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management' //类似于maven的版本管理方式
//子model统一jar引入
dependencies {
annotationProcessor 'org.projectlombok:lombok' //注释处理器
implementation 'org.projectlombok:lombok'//引入lombok依赖
}
//提供类似 Maven 的依赖管理和排除的 Gradle 插件
//使用类似于maven的方式(io.spring.dependency-management) 统一版本管理
//https://docs.spring.io/dependency-management-plugin/docs/current/reference/html/#pom-generation 学习网址
//DSL 允许您使用:分隔的字符串来声明依赖管理,以配置托管依赖的坐标
dependencyManagement {
dependencies{
//统一版本管理
//DSL 允许您使用:分隔的字符串来声明依赖管理,以配置托管依赖的坐标
dependency "mysql:mysql-connector-java:${mysqlVersion}"
dependency "org.projectlombok:lombok:${lombokVersion}"
dependency "com.baomidou:mybatis-plus-boot-starter:${mybatisPlusVersion}"
dependency "com.baomidou:mybatis-plus-generator:${mybatisPlusVersion}"
dependency "org.springframework.boot:spring-boot-starter-web:${springBootVersion}"
dependency "org.apache.velocity:velocity-engine-core:${velocityVersion}"
}
imports {
//引入 spring-cloud统一包管理
mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
//引入 spring-cloud-alibaba统一包管理
mavenBom "com.alibaba.cloud:spring-cloud-alibaba-dependencies:${springCloudAlibabaVersion}"
//引入 spring-boot统一包管理
mavenBom "org.springframework.boot:spring-boot-dependencies:${springBootVersion}"
}
}
}
//禁止根项目一切行为(不影响模块)
//禁用以后执行build的时候不会构建parent项目
tasks.forEach {
it.enabled = false
}
/**
* Gradle打标准jar包
* 根项目需禁用springboot插件,否则会构建失败
* 光禁用BootJar是不行的,还要启用Jar。
* GroovyDSL的写法,对KotlinDSL无效
*/
bootJar{
enabled = false}
jar{
enabled=true}
/** KotlinDSL写法
* tasks.bootJar {enabled = false}
* tasks.jar {enabled = true}
*/
tasks.named('test') {
useJUnitPlatform()
}
1.3.deity
親プロジェクトの settings.gradle ファイル
サブプロジェクトには settings.gradle ファイルがないことに注意してください。settings.gradle ファイルはグローバルに 1 つだけあります
pluginManagement {
repositories {
// mavenLocal() //从maven本地仓库下载jar到gradle仓库 【两者】
maven {
url 'https://maven.aliyun.com/repository/public/' }
// 新增
maven {
url 'https://maven.aliyun.com/repository/grails-core'}
maven {
url 'https://maven.aliyun.com/repository/google/' }
maven {
url 'https://maven.aliyun.com/repository/jcenter/' }
maven {
url "https://mvn.getui.com/nexus/content/repositories/releases/" }
maven {
url 'http://mirrors.huaweicloud.com/repository/maven/'
allowInsecureProtocol = true
}
maven {
url 'https://repo.spring.io/milestone' }
maven {
url 'https://repo.spring.io/snapshot' }
mavenCentral() //maven中央仓库
gradlePluginPortal()
}
}
rootProject.name = 'deity'
include 'mall-Ares'
include 'mall-angel'
この時点でファイルを確認すると
settings.gradle
、サブモジュールのインポート ディレクトリが自動的に生成されていることがわかります。
1.4、サブプロジェクト build.gradle
mall-Ares 和 mall-angel
2つのサブアイテム
ここで、サブプロジェクトに必要な設定パラメーターは非常に多くのみであることに注意してください。他の jar が必要な場合は、
dependencies {}
インポートを続行できます。(すべてのサブプロジェクト構成は一貫しています)
//子项目需要的jar包
dependencies {
//SpringBoot启动项引入
implementation 'org.springframework.boot:spring-boot-starter-web'
}
// 动态移除对kotlin构建插件的权限,避免子模块构建报错
tasks.register("prepareKotlinBuildScriptModel") {
}
1.5、サブプロジェクトの application.yml 設定
1.5.1、mall-Ares
application.yml
server:
port: 8082
1.5.2、mall-angel
application.yml
server:
port: 8083
1.6. テストコントローラー
1.6.1、mall-Ares
テストコード
package com.dage.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("test/")
public class TestController {
@RequestMapping("one")
public String one(){
return "欢迎来到java17";
}
}
1.6.2、mall-angel
テストコード
package com.dage.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("test/")
public class TestController {
@RequestMapping("one")
public String one(){
return "欢迎来到gradle7.6.1";
}
}
1.7. テストが開始されるかどうか
2. gitee ウェアハウスを作成し、リモート エンドにプッシュします。
2.1. gitee にログインして新しいウェアハウスを作成します ( deity
)
ウェアハウス名はプロジェクト名と同じである必要があります。ここではウェアハウス名は次のとおりです。
deity
2.1.1. 次のコマンドを取得します (新しいウェアハウスを作成するには、创建git仓库
を使用するだけです)
简易的命令行入门教程:
Git 全局设置:
git config --global user.name "xxx"
git config --global user.email "[email protected]"
创建 git 仓库:
mkdir gods
cd gods
git init
touch README.md
git add.
git commit -m "first commit"
git remote add origin https://gitee.com/xxxxxxxx/gods.git
git push -u origin "master"
已有仓库?
cd existing_git_repo
git remote add origin https://gitee.com/xxxxxxx/gods.git
git push -u origin "master"
ここでは git を使用する必要があります。自分でインストールする必要がありますが、ここでは詳しく説明しません
。ここで git add を使用して、すべてのファイルを一時記憶領域に追加します
2.2、git実行コマンド
プロジェクトのルート ディレクトリでコマンドを実行します。
必ずxxxxx
自分のアドレスに置き換えてください。
- gitを開いてプロジェクトファイルを入力します
git init
gitを初期化するtouch README.md
バージョンファイルを作成するgit status
現在のワークスペース ファイルのステータスを表示するgit add .
すべてのファイルをステージング領域にアップロードしますgit commit -m " 提交注释"
ファイルをローカル リポジトリに送信するgit remote add origin https://gitee.com/xxxxxxxx/gods.git
リモート倉庫を追加しorigin
て関連付けを確立するgit push -u origin "master"
現在のブランチをmaster
リモートウェアハウスにプッシュしますorigin
2.2.1. IDEA では、コードがウェアハウスに正常にアップロードされたかどうかを確認できます。
2.2.2. コードが gitee ウェアハウスに正常にアップロードされたかどうかを確認する
2.3. git の一般知識の簡単な紹介
追伸:画像ソース
ワークスペース: 作業領域。通常はコードが保存されます。 ステージング
領域: 一時ストレージ領域/キャッシュ領域。変更を一時的に保存するために使用されます。実際には単なるファイルです。ファイルリストに送信される情報を保存します。 ローカルリポジトリ:
ローカル安全な倉庫 データが保存される場所。すべてのバージョンに送信したデータが含まれます。HEAD がウェアハウスのリモート リポジトリに配置された最新バージョンを指す場所
: リモート ウェアハウス、サーバー ホスティング コード
変更からリモート ウェアハウスへの送信まで、コードは通常、未変更、変更、一時保存、送信、プッシュの 5 つの状態を通過する必要があります。次のように:
未修改
原始内容
已修改 ↓
工 作 区
已暂存 ↓ git add
暂 存 区
已提交 ↓ git commit
本地仓库
已推送 ↓ git push
远程仓库
予防
git init は、プロジェクトのルート ディレクトリの下にある .git ディレクトリを初期化します。git ウェアハウスは
リモートである必要があり、実行する必要があるのは 1 回だけです。yourRepository.git は、github にすでにあるウェアハウスです。gitignore
、このファイルはすべてのユーザーに書き込まれます。バージョン管理に追加する必要のないファイル (特に、node_modules など)
3.Nacosサービス登録 SpringCloud Alibaba
3.1. win でスタンドアロン nacos を起動する
ここにインストールしました:NACOS 2.2.2
-
ステップ 1: nacos をローカルにダウンロードした後、bin ディレクトリにあるファイルを開き、「cmd」と入力してコマンド ウィンドウに入ります。
-
ステップ 2: 起動コマンドを入力します:startup.cmd -mstandalone 起動が成功したことがわかります。
Linux/Unix/Mac: コマンド
startup.sh -m standalone
Windows: コマンド
startup.cmd -m standalone
- ステップ 3: 起動が成功すると、ブラウザで URL: http://localhost:8848/nacos/ が開きます。
- デフォルトの nacos/nacos が正常に表示されました (単一マシンにログインする必要はありません)
3.2. プロジェクトの名前空間を作成する
PS:ここでは 命名空间ID
メモリに焦点を当てます
3.3. 新しく必要な依存関係を導入する
ここでは、2 つのサブプロジェクトに
dependencies{}
次の依存関係を追加する必要があります。
これは、依存関係を管理するための Maven ベースの Gradle プラグインです。必要に応じて、ディレクトリ 1.2 にジャンプしてください。
// SpringCloud Alibaba nacos服务发现
implementation('com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-discovery') {
exclude group: 'org.springframework.cloud', module: 'spring-cloud-starter-netflix-ribbon'
}
//用于简化配置管理和外部化配置
//可以从远程配置服务器(如 Git 存储库)中获取应用程序的配置信息,然后将这些配置信息注入到应用程序中
implementation 'org.springframework.cloud:spring-cloud-starter-bootstrap'
3.3.1 サブプロジェクトの依存関係更新グラフ
3.4. @EnableDiscoveryClient アノテーションをスタートアップクラスに追加する
@EnableDiscoveryClient
サービス検出を可能にする Spring Cloud のアノテーションです
package com.dage;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@SpringBootApplication
@EnableDiscoveryClient
public class AresSpringBootApplication {
public static void main(String[] args) {
SpringApplication.run(AresSpringBootApplication.class,args);
}
}
3.5、設定用の bootstrap.yml を作成する
ここでは分かりやすいようにサブプロジェクトが2つあるので2つの設定を掲載しましたディレクトリ3.2の注目すべき内容は以下の通りです
ここで注意すべき点はserver.portの設定ですapplication.yml で bootstrap.yml を取得したので、application.yml は空になりました。命名空间ID
server:
port: 8082
spring:
application:
name: mall-Ares
cloud:
nacos:
discovery:
server-addr: localhost:8848
enabled: true
namespace: deity88481314 #命名空间ID
server:
port: 8083
spring:
application:
name: mall-angel
cloud:
nacos:
discovery:
server-addr: localhost:8848
enabled: true
namespace: deity88481314 #命名空间ID
3.6. nacos管理プラットフォームに登録および入力されたサービスの表示
テストが終了しました