【springcloud合集】03:IDEA新建父工程project
一個畢業後差一點進大廠的程式設計師的進階之路——既為鞏固知識,也為增長粉絲。
個人微信公眾號【一條IT】,每天分享軟體,資源,教程,福利。
理解版本和理論之後正式進入編碼階段。
原則:約定 > 配置 > 編碼
首先新建父工程
主要步驟
new maven工程
確定總工程的名字
配置maven(修改成阿里雲映象下載)
字元編碼
註解生效啟用
Java版本選8
*File Type過濾和預設作者模板
1.新建maven工程
模板選擇xxxxxxx-site
補充知識:maven各模板的區別
新建Maven project專案時,需要選擇archetype。
archetype的意思是模板原型,是一個Maven專案模板工具包。一個原型被定義為從其中相同型別的所有其它事情是由一個原始圖案或模型。名稱配合,因為我們正在努力提供一種系統,該系統提供了一種生成Maven專案的一致的手段。原型將幫助作者為使用者建立Maven專案模板,併為使用者提供了手段,產生的這些專案模板引數化的版本。
maven提供的41個骨架原型分別是:
1: appfuse-basic-jsf (建立一個基於Hibernate,Spring和JSF的Web應用程式的原型)
2: appfuse-basic-spring(建立一個基於Hibernate,Spring和Spring MVC的Web應用程式的原型)
3: appfuse-basic-struts(建立一個基於Hibernate,Spring和Struts 2的Web應用程式的原型)
4: appfuse-basic-tapestry(建立一個基於Hibernate,Spring 和 Tapestry 4的Web應用程式的原型)
5: appfuse-core(建立一個基於Hibernate,Spring 和 XFire的jar應用程式的原型)
6: appfuse-modular-jsf(建立一個基於Hibernate,Spring和JSF的模組化應用原型)
7: appfuse-modular-spring(建立一個基於Hibernate, Spring 和 Spring MVC 的模組化應用原型)
8: appfuse-modular-struts(建立一個基於Hibernate, Spring 和 Struts 2 的模組化應用原型)
9: appfuse-modular-tapestry (建立一個基於 Hibernate, Spring 和 Tapestry 4 的模組化應用原型)
10: maven-archetype-j2ee-simple(一個簡單的J2EE的Java應用程式)
11: maven-archetype-marmalade-mojo(一個Maven的 外掛開發專案 using marmalade)
12: maven-archetype-mojo(一個Maven的Java外掛開發專案)
13: maven-archetype-portlet(一個簡單的portlet應用程式)
14: maven-archetype-profiles()
15:maven-archetype-quickstart()
16: maven-archetype-site-simple(簡單的網站生成專案)
17: maven-archetype-site(更復雜的網站專案)
18:maven-archetype-webapp(一個簡單的Java Web應用程式)
19: jini-service-archetype(Archetype for Jini service project creation)
20: softeu-archetype-seam(JSF+Facelets+Seam Archetype)
21: softeu-archetype-seam-simple(JSF+Facelets+Seam (無殘留) 原型)
22: softeu-archetype-jsf(JSF+Facelets 原型)
23: jpa-maven-archetype(JPA 應用程式)
24: spring-osgi-bundle-archetype(Spring-OSGi 原型)
25: confluence-plugin-archetype(Atlassian 聚合外掛原型)
26: jira-plugin-archetype(Atlassian JIRA 外掛原型)
27: maven-archetype-har(Hibernate 存檔)
28: maven-archetype-sar(JBoss 服務存檔)
29: wicket-archetype-quickstart(一個簡單的Apache Wicket的專案)
30: scala-archetype-simple(一個簡單的scala的專案)
31: lift-archetype-blank(一個 blank/empty liftweb 專案)
32: lift-archetype-basic(基本(liftweb)專案)
33: cocoon-22-archetype-block-plain([http://cocoapacorg2/maven-plugins/])
34: cocoon-22-archetype-block([http://cocoapacorg2/maven-plugins/])
35:cocoon-22-archetype-webapp([http://cocoapacorg2/maven-plugins/])
36: myfaces-archetype-helloworld(使用MyFaces的一個簡單的原型)
37: myfaces-archetype-helloworld-facelets(一個使用MyFaces和Facelets的簡單原型)
38: myfaces-archetype-trinidad(一個使用MyFaces和Trinidad的簡單原型)
39: myfaces-archetype-jsfcomponents(一種使用MyFaces建立定製JSF元件的簡單的原型)
40: gmaven-archetype-basic(Groovy的基本原型)
41: gmaven-archetype-mojo(Groovy mojo 原型)
(41中骨架原文連結:http://www.cnblogs.com/iusmile/archive/2012/11/14/2770118.html)
2.確定總工程名字
springcloud整體架構是一個總的父工程和各分支模組,在新建maven時輸入的名字是總的工程名字,以後再新建各種moudles。
這個我用的名字是cloud2020
3.配置maven
這裡不用IDEA的maven,用自己安裝的,下載速度快。
修改配置檔案maven/conf/settings.xml,將官方的註釋掉,新增下面程式碼
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>https://maven.aliyun.com/nexus/content/repositories/central/</url>
<mirrorOf>central</mirrorOf>
</mirror>
4.設定字元編碼utf-8
開啟設定快捷鍵:ctrl+alt+s
5.註解生效啟用
6.選擇Java版本8
7.File Type過濾和預設作者模板(可選)
file type:過濾掉和編碼無關的檔案,如.idea,是介面簡潔
預設作者模板:每次新建檔案都會自動註釋說明作者和建立時間
配置父工程pom.xml
1.刪除src整個,只留pom.xml
2.替換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>
<groupId>com.li.springcloud</groupId>
<artifactId>cloud2020</artifactId>
<version>1.0-SNAPSHOT</version>
<modules>
<module>cloud-provider-payment8001</module>
</modules>
<packaging>pom</packaging>
<!-- 統一管理jar包版本 -->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<junit.version>4.12</junit.version>
<log4j.version>1.2.17</log4j.version>
<lombok.version>1.16.18</lombok.version>
<mysql.version>5.1.47</mysql.version>
<druid.version>1.1.16</druid.version>
<mybatis.spring.boot.version>1.3.0</mybatis.spring.boot.version>
</properties>
<!-- 子模組繼承之後,提供作用:鎖定版本+子modlue不用寫groupId和version -->
<dependencyManagement>
<dependencies>
<!--spring boot 2.2.2-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.2.2.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!--spring cloud Hoxton.SR1-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Hoxton.SR1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!--spring cloud alibaba 2.1.0.RELEASE-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.1.0.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>${druid.version}</version>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>${mybatis.spring.boot.version}</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>${log4j.version}</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
<optional>true</optional>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork>
<addResources>true</addResources>
</configuration>
</plugin>
</plugins>
</build>
</project>
貼上完成後右下角點選開啟自動匯入,等待下載依賴,時間很長。
<dependencyManagement>的作用
1.統一管理子工程的版本,如果子工程想使用和父工程一樣的版本,可以省去groupid和version
2.如果寫了版本,則以寫的為準
3.父工程只起到版本管理功能,沒有下載依賴功能,子工程裡沒寫的依賴不會下載
跳過單元測試
總結
到此,父工程已經建完,以後的moudle全在此目錄新建並且版本交給父工程管理,要注意區分子工程和父工程的pom檔案,不要改錯了。
下一節將建立第一個微服務工程——支付模組
相關文章
- springcloud,新建父工程(聚合工程)初始化專案SpringGCCloud
- 關於IDEA新建工程後dump project structure from sbtIdeaProjectStruct
- idea如何新建一個springmvc 工程IdeaSpringMVC
- IDEA 2021版新建Maven、TomCat工程IdeaMavenTomcat
- idea--Project StructureIdeaProjectStruct
- Idea Project Structure配置IdeaProjectStruct
- 在IDEA中maven工程中父工程不顯示的解決辦法IdeaMaven
- IDEA社群版搭建Spring工程(03-Spring MVC搭建)IdeaSpringMVC
- idea中新建javaWeb專案IdeaJavaWeb
- idea新建工程只能選擇高版本的,1.8的sdk用不了Idea
- 【intellij idea】Project Structure 講解IntelliJIdeaProjectStruct
- IntelliJ IDEA新建JSP檔案IntelliJIdeaJS
- (乾貨)【intellij idea】Project Structure 講解IntelliJIdeaProjectStruct
- idea修改新Project使用的maven路徑IdeaProjectMaven
- android新建立工程失敗!Android
- IntelliJ IDEA如何新建專案HTMLIntelliJIdeaHTML
- Idea 建立 父專案和子專案Idea
- Idea新建Maven專案,無法新建package,不能識別module結構體IdeaMavenPackage結構體
- IDEA建立Maven工程IdeaMaven
- IDEA新建Maven Java Web專案-詳細教程IdeaMavenJavaWeb
- IDEA建立project和多個module(相互依賴打包)IdeaProject
- IDEA建立Java WEB工程IdeaJavaWeb
- 嵌入式day01(新建工程)
- IDEA 新建 Java 專案 (圖文講解, 良心教程)IdeaJava
- 使用IntelliJ IDEA新建Java Web後端resfulAPI模板IntelliJIdeaJavaWeb後端API
- idea專案的resource目錄新建資料夾Idea
- 用IDEA除錯Play工程Idea除錯
- 新建一個最小的Makefile工程(C語言)C語言
- IDEA新建專案時的預設配置與模版配置Idea
- idea左上角project一片綠的解決方法IdeaProject
- Java工程師研發面經大合集Java工程師
- 2018-03-29 SpringCloud Feign DecoderSpringGCCloud
- 二. SpringCloud基本Rest微服務工程搭建SpringGCCloudREST微服務
- springcloud修改父和子pom檔案,實現統一管理SpringGCCloud
- 03《軟體工程思想》讀後感02軟體工程
- idea建立servlet工程初體驗IdeaServlet
- IDEA建立Gradle工程-實踐IdeaGradle
- Linux運維工程師必備工具合集Linux運維工程師