Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 国产精品久久亚洲不卡4k岛国,最近中文字幕视频完整,国产亚洲久久

          整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          Maven Archetype 秘籍:輕松打造項目模

          Maven Archetype 秘籍:輕松打造項目模板

          在多數企業的軟件開發生態中,項目初始化往往遵循一套既定的模板規范,通常需要集成一些公司內部的中間件、通用的代碼分層、標準的代碼格式等等。傳統的項目啟動方式是簡單復制舊項目并手動調整包名與配置,不僅效率低下,且容易因人為疏忽而導致錯誤,增加了項目的維護成本與風險。

          Maven Archetype 作為一種項目模板工具,能夠讓我們輕松定義項目的基礎結構,包括必要的依賴、配置文件模板乃至特定的代碼片段,從而實現新項目的標準初始化。這不僅極大地簡化了項目創建的流程,減少了重復勞動,還確保了項目的一致性和規范性,讓開發者能夠更專注于核心業務邏輯的實現。

          什么是 Maven Archetype

          Maven ArchetypeMaven 項目中的一種模板機制,它可以根據已有項目生成一個模板項目,為我們快速創建一個 Maven 項目的骨架結構,包括目錄、文件和配置等。這樣,我們就可以基于這個標準化的項目結構快速啟動新項目,而無需從頭開始編寫所有內容。

          如何自定義 Archetype

          1. Mavensettings.xml 復制一份到.m2 目錄下。
          2. 進入項目根目錄,執行 maven 命令:
          mvn archetype:create-from-project
          

          執行成功后,項目根目錄下會生成 target 文件夾。

          1. 刪除項目根目錄下 target 目錄下的無用文件夾(如.ideatesttarget 等)。
          2. target\generated-sources\archetype 復制一份到任意位置(防止被意外 mvn clean)。
          3. 打開復制出來的項目,修改父 pom
          • 添加缺失的 module 信息
          <modules>
              <module>${rootArtifactId}-adapter</module>
              <module>${rootArtifactId}-app</module>
              <module>${rootArtifactId}-client</module>
              <module>${rootArtifactId}-common</module>
              <module>${rootArtifactId}-domain</module>
              <module>${rootArtifactId}-infrastructure</module>
              <module>${rootArtifactId}-start</module>
          </modules>
          

          修改 dependencyManagement 下依賴引用的各個 module,改為如下格式:

          <dependency>
              <groupId>${groupId}</groupId>
              <artifactId>${rootArtifactId}-adapter</artifactId>
              <version>${project.version}</version>
          </dependency>
          

          如何使用 Archetype

          1. 在修改完成之后的 archetype 項目根目錄下,執行 maven 命令:
          mvn install
          

          執行成功后,.m2\repository 目錄下會生成 archetype-catalog.xml 文件。

          1. 將此文件添加到 IDEA 的 archetype catalogs
          1. 新建項目時,選擇剛剛的 CatalogArchetype,填寫項目信息后直接創建即可。

          如何共享 Archetype

          1. 在修改完成之后的 Archetype 項目根目錄下,執行 maven 命令:
          mvn deploy
          
          1. archetype-catalog.xml上傳至 oss,得到一個 url
          2. 團隊其他成員可將此 url 添加到 IDEA 的 archetype catalogs 中,其余使用 Archetype 步驟同上。

          總結

          Maven Archetype 是一個強大的工具,它可以幫助我們快速創建項目的骨架結構,節省了繁瑣的配置和初始化工作。通過自定義 Archetype,我們可以根據項目需求定制模板,提高開發效率。使用 Archetype 時,只需在 IDEA 中添加相應的 CatalogArchetype,填寫項目信息即可快速創建項目。希望本文能幫助你更好地了解和使用Maven Archetype

          參考資料

          1. https://maven.apache.org/archetype/index.html
          2. https://baeldung-cn.com/maven-archetype

          作者:當貝技術團隊

          來源-微信公眾號:當貝技術團隊

          出處:https://mp.weixin.qq.com/s/516n2bPvZd1NZh6juSS92A

          、相關技術棧版本概覽

          技術棧

          版本

          說明

          java

          ≥17.0.2

          JDK版本

          springframework

          6.1.11

          JavaEE開發框架

          springboot

          3.3.2

          容器+MVC框架

          gradle

          8.9

          自動化構建工具

          lombok

          1.18.32

          Java工具類庫

          knife4j

          4.5.0

          Swagger增強組件

          前提還是需要具備JAVA開發的基礎概念,比如安裝JDK環境。

          二、整合相關技術棧

          1. 創建空項目

          使用 Spring Initializr 「https://start.spring.io/」快速創建Spring項目

          Dependencies 對話框中搜索并添加 web 依賴關系,如屏幕截圖所示。點擊“生成”按鈕,下載壓縮包,并將其解壓縮到計算機本地。

          Spring Initializr


          2. 編寫基礎的 Gradle 相關腳本

          以下按相對項目的根目錄進行說明,如文件不存在 可以手動創建:

          • gradle.properties
          # 當前項目版本
          projectVersion=0.1.0-SNAPSHOT
          
          # SpringBoot版本
          springbootVersion=3.3.2
          
          # JDK最低版本
          jdkVersion=17
          • build.gradle
          buildscript {
              repositories {
                  mavenLocal()
                  maven { url "https://maven.aliyun.com/repository/public/" }
              }
          
              dependencies {
                  /* 添加插件依賴路徑(通過jar方式) */
                  classpath "org.springframework.boot:spring-boot-gradle-plugin:${springbootVersion}"
              }
          }
          
          allprojects {
              apply plugin: "idea"
              apply plugin: "java"
              apply plugin: "org.springframework.boot"
              apply plugin: "io.spring.dependency-management"
          
              group='com.app4j.stack'
              version=projectVersion
          
              java {
                  toolchain {
                      languageVersion=JavaLanguageVersion.of(jdkVersion)
                  }
              }
          
              configurations {
                  // 排除tomcat
                  all*.exclude module: 'spring-boot-starter-tomcat'
                  compileOnly {
                      extendsFrom annotationProcessor
                  }
              }
          
              repositories {
                  mavenLocal()
                  maven { url "https://maven.aliyun.com/repository/public/" }
              }
          
              dependencies {
                  // Lombok
                  compileOnly 'org.projectlombok:lombok'
                  annotationProcessor 'org.projectlombok:lombok'
                  // Spring Web
                  implementation 'org.springframework.boot:spring-boot-starter-web'
                  // 使用undertow 替換tomcat
                  implementation 'org.springframework.boot:spring-boot-starter-undertow'
              }
          }


          3. 創建 Springboot 啟動類

          com.app4j.web.WebApplication

          package com.app4j.web;
          
          import lombok.extern.slf4j.Slf4j;
          import org.springframework.boot.autoconfigure.SpringBootApplication;
          import org.springframework.boot.builder.SpringApplicationBuilder;
          
          /**
           * @author eric.hao
           * @since 2024/07/18
           */
          @Slf4j
          @SpringBootApplication
          public class WebApplication {
          
              public static void main(String[] args) {
                  new SpringApplicationBuilder(WebApplication.class).run(args);
                  log.info("[App4j] Application Started.");
              }
          }

          ok 項目這就可以正式啟動啦!

          項目啟動效果

          4. 整合 Swagger

          只需一步即可!引入 Knife4j Swagger 增加工具包:

          dependencies {
              // Swagger
              implementation 'com.github.xiaoymin:knife4j-openapi3-jakarta-spring-boot-starter:4.5.0'
          }

          讓我們添加一個接口,測試下 swagger 的效果:

          package com.app4j.web.knife4j;
          
          import io.swagger.v3.oas.annotations.Operation;
          import io.swagger.v3.oas.annotations.tags.Tag;
          import org.springframework.http.ResponseEntity;
          import org.springframework.web.bind.annotation.PostMapping;
          import org.springframework.web.bind.annotation.RequestMapping;
          import org.springframework.web.bind.annotation.RequestParam;
          import org.springframework.web.bind.annotation.RestController;
          
          /**
           * @author eric.hao
           * @since 2024/07/27
           */
          @RestController
          @RequestMapping("/demo")
          @Tag(name="示例接口")
          public class Knife4jController {
          
              @Operation(summary="向客人問好")
              @PostMapping("/sayHi")
              public ResponseEntity<?> sayHi(@RequestParam(value="name") String name) {
                  return ResponseEntity.ok("Hi:" + name);
              }
          }

          訪問接口文檔的本地地址:http://127.0.0.1:8080/doc.html

          Swagger 界面效果

          重要提示:為什么這次不用配置Docket Bean,就可以看到接口清單?

          Knife4j 自4.0版本,下面的配置在 knife4j-openapi2-spring-boot-starter 中仍然需要如此配置,而在 knife4j-openapi3-spring-boot-starter knife4j-openapi3-jakarta-spring-boot-starter 則不需要!!!

          Knife4j 版本說明

          以上,我們完成了一個新的網站項目的初始化,并查看網站項目的OpenAPI!

          關注點贊收藏不迷路!!振鎖會持續給大家分享大廠一線的開發經驗,手把手從0到架構設計!成為獨當一面的多面手!!

          aven是一個項目管理工具,它包含了一個項目對象模型 (Project Object Model),一組標準集合,一個項目生命周期(Project Lifecycle),一個依賴管理系統(Dependency Management System),和用來運行定義在生命周期階段(phase)中插件(plugin)目標(goal)的邏輯。當你使用Maven的時候,你用一個明確定義的項目對象模型來描述你的項目,然后Maven可以應用橫切的邏輯,這些邏輯來自一組共享的(或者自定義的)插件。

          1.創建maven項目

          1.1打開eclipse,在工作區右擊鼠標,選擇new,然后選擇Other

          1.2找到maven文件夾,選擇Maven Project,點擊Next繼續

          1.3繼續點擊Next

          1.4選中maven-archetype-webapp這一行

          1.5Group Id和Artifact Id都填入RedisWebServer,Package填入com.java,package可以不寫,是它默認幫你新建一個包,不寫沒關系,點擊Finish

          2.下面新建好的項目結構,默認有一個src/main/resources的目錄,我們再新建一個src/main/java的目錄

          3.鼠標右擊項目,選中最下面的Properties

          4.看到src/main/java和src/test/java 是missing狀態,把這兩個Remove掉

          5.點擊create new folder,新建src/main/java和src/test/java

          6.修改web.xml內容

          刪除<!DOCTYPE web-app PUBLIC

          "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"

          "http://java.sun.com/dtd/web-app_2_3.dtd" >

          添加<?xml version="1.0" encoding="UTF-8" standalone="no"?>

          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"

          "http://www.w3.org/2002/xmlspec/dtd/2.10/xmlspec.dtd">

          7.設置Maven啟動方式

          8.啟動項目,訪問首頁,看看是否成功


          主站蜘蛛池模板: 在线精品动漫一区二区无广告| 日本免费一区二区三区最新| 国产无人区一区二区三区 | 久久国产精品视频一区| 无码一区二区三区免费视频| 国产乱码一区二区三区爽爽爽| 中文字幕一区日韩精品| 久久99精品一区二区三区| 亚洲免费视频一区二区三区| 精品国产一区二区三区免费看| 亚洲香蕉久久一区二区三区四区| 99久久精品国产免看国产一区 | 国产AV天堂无码一区二区三区| 日韩精品无码中文字幕一区二区| 国产在线精品一区二区不卡麻豆| 女人和拘做受全程看视频日本综合a一区二区视频 | 日本欧洲视频一区| 国产SUV精品一区二区88L| 亚洲欧洲精品一区二区三区| 久久久精品人妻一区亚美研究所 | 一区二区三区杨幂在线观看 | 中文字幕日韩人妻不卡一区| 国产aⅴ一区二区| 一区二区国产在线观看| 成人区人妻精品一区二区不卡视频| 偷拍精品视频一区二区三区| 亚洲一区二区三区在线视频| 国产精品亚洲产品一区二区三区| 美女福利视频一区二区| 精品中文字幕一区在线| 日韩视频一区二区在线观看| 国产裸体舞一区二区三区| 四虎永久在线精品免费一区二区 | 亚洲av无码一区二区三区天堂古代 | 日本强伦姧人妻一区二区| 国产在线精品一区二区在线看 | 果冻传媒一区二区天美传媒| 国产成人无码一区二区三区在线| 无码人妻久久久一区二区三区 | 精品少妇人妻AV一区二区| 波多野结衣一区二区三区高清av|