1. 程式人生 > >學Maven,這篇萬餘字的教程,真的夠用了!

學Maven,這篇萬餘字的教程,真的夠用了!

1 Maven 介紹

1.1 為什麼使用 Maven

由於 Java 的生態非常豐富,無論你想實現什麼功能,都能找到對應的工具類,這些工具類都是以 jar 包的形式出現的,例如 Spring,SpringMVC、MyBatis、資料庫驅動,等等,都是以 jar 包的形式出現的,jar 包之間會有關聯,在使用一個依賴之前,還需要確定這個依賴所依賴的其他依賴,所以,當專案比較大的時候,依賴管理會變得非常麻煩臃腫,這是 Maven 解決的第一個問題。

Maven 還可以處理多模組專案。簡單的專案,單模組分包處理即可,如果專案比較複雜,要做成多模組專案,例如一個電商專案有訂單模組、會員模組、商品模組、支付模組...,一般來說,多模組專案,每一個模組無法獨立執行,要多個模組合在一起,專案才可以執行,這個時候,藉助 Maven 工具,可以實現專案的一鍵打包。

Maven 之前,我們更多的是使用 Ant 的專案構建工具,Ant 有一個特點,每次都得寫,每次都寫的差不多,配置也臃腫。所以,後來搞出來 Maven。Maven 就是最先進的版本構建工具嗎?不是的,只不過,目前在 Java 領域 Maven 使用比較多。除了 Maven,還有 Gradle。

1.2 Maven 是什麼

Maven 是一個專案管理工具,它包含了一個專案物件模型(Project Object Model),反映在配置中,就是一個 pom.xml 檔案。是一組標準集合,一個專案的生命週期、一個依賴管理系統,另外還包括定義在專案生命週期階段的外掛(plugin)以及目標(goal)。

當我們使用 Maven 的使用,通過一個自定義的專案物件模型,pom.xml 來詳細描述我們自己的專案。

Maven 中的有兩大核心:

  • 依賴管理:對 jar 的統一管理(Maven 提供了一個 Maven 的中央倉庫,https://mvnrepository.com/,當我們在專案中新增完依賴之後,Maven 會自動去中央倉庫下載相關的依賴,並且解決依賴的依賴問題)
  • 專案構建:對專案進行編譯、測試、打包、部署、上傳到私服等

    2. Maven 安裝

  • Maven 是 Java 專案,因此必須先安裝 JDK。

下載 Maven:

  • 下載 Maven

下載地址:http://maven.apache.org/download.cgi

  • 解壓並配置

配置,只需要配置環境變數即可:

首先配置 MAVEN_HOME:

然後配置環境變數:

  • 檢驗安裝

如果使用了 IntelliJ IDEA ,可以不用去額外下載 Maven,直接使用 IDEA 中自帶的 Maven 外掛即可。IntelliJ IDEA 中自帶的 Maven 外掛在 \ideaIU-2019.2.4.win\plugins\maven\lib\maven3

3. Maven 配置

實際上,沒有特殊需求的話,安裝好之後直接就可以用了。一般來說,還是需要稍微配置一下,比如中央倉庫的問題。預設使用 Maven 自己的中央倉庫,使用起來網速比較慢,這個時候,可以通過修改配置檔案,將倉庫改成國內的映象倉庫,國內倉庫使用較多的是阿里巴巴的倉庫。

3.1 倉庫型別

倉庫型別 說明
本地倉庫 就是你自己電腦上的倉庫,每個人電腦上都有一個倉庫,預設位置在 當前使用者名稱\.m2\repository
私服倉庫 一般來說是公司內部搭建的 Maven 私服,處於區域網中,訪問速度較快,這個倉庫中存放的 jar 一般就是公司內部自己開發的 jar
中央倉庫 有 Apache 團隊來維護,包含了大部分的 jar,早期不包含 Oracle 資料庫驅動,從 2019 年 8 月開始,包含了 Oracle 驅動

現在存在 3 個倉庫,那麼 jar 包如何查詢呢?

3.2 本地倉庫配置

本地倉庫預設位置在 當前使用者名稱\.m2\repository,這個位置可以自定義,但是不建議大家自定義這個地址,有幾個原因:

  1. 雖然所有的本地的 jar 都放在這個倉庫中,但是並不會佔用很大的空間。
  2. 預設的位置比較隱蔽,不容易碰到

技術上來說,當然是可以自定義本地倉庫位置的,在 conf/settings.xml 中自定義本地倉庫位置:

3.3 遠端映象配置

由於預設的中央倉庫下載較慢,因此,也可以將遠端倉庫地址改為阿里巴巴的倉庫地址:

<mirror>
        <id>nexus-aliyun</id>
        <mirrorOf>central</mirrorOf>
        <name>Nexus aliyun</name>
        <url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>

這段配置,加在 settings.xml 中的 mirrors 節點中:

4. Maven 常用命令

Maven 中有一些常見的命令,如果使用 Eclipse 需要手動敲命令,如果使用 IDEA 的話,可以不用命令,直接點點點就可以了。

常用命令 中文含義 說明
mvn clean 清理 這個命令可以用來清理已經編譯好的檔案
mvn compile 編譯 將 Java 程式碼編譯成 Class 檔案
mvn test 測試 專案測試
mvn package 打包 根據使用者的配置,將專案打成 jar 包或者 war 包
mvn install 安裝 手動向本地倉庫安裝一個 jar
mvn deploy 上傳 將 jar 上傳到私服

這裡需要注意的是,這些命令都不是獨立執行的,它有一個順序。舉個簡單例子:

我想將 jar 上傳到私服,那麼就要構建 jar,就需要執行 package 命令,要打包,當然也需要測試,那就要走 mvn test 命令,要測試就要先編譯.....,因此,最終所有的命令都會執行一遍。不過,開發者也可以手動配置不執行某一個命令,這就是跳過。一般來是,除了測試,其他步驟都不建議跳過。

當然,如果開發者使用了 IDEA ,這些命令不用手動敲,點一下就行:

4.1 通過命令來構建專案

可以直接通過命令來構建一個 Maven 專案,不過在實際開發中,一般使用 Eclipse 或者 IDEA 就可以直接建立 Maven 專案了。

建立命令:

mvn archetype:generate -DgroupId=org.javaboy -DartifactId=firstapp -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

看到如下提示,表示專案建立成功:

專案建立成功後,就兩個檔案:

說明對一個任何一個專案而言,最最核心的就是這兩個。

pom.xml 中,則定義了所有的專案配置。

4.2 對專案進行打包

接下來,我們通過 mvn package 命令可以將剛剛建立的專案打成一個 jar 包。

在打包之前,需要配置 JDK 的版本至少為 7 以上,因此,我們還需要手動修改一下 pom.xml 檔案,即新增如下配置:

新增完成後,執行打包命令,注意執行所有命令時,命令列要定位到 pom.xml 檔案所在的目錄,看到如下提示,表示專案打包成功。

4.3 將專案安裝到本地倉庫

如果需要將專案安裝到本地倉庫,可以直接執行 mvn install 命令,注意,mvn install 命令會包含上面的 mvn package 過程。

安裝到本地倉庫之後,這個時候,點開自己的本地倉庫,就可以看到相關的 jar 了。

5. IDEA 中使用 Maven

不同於 Eclipse,IDEA 安裝完成後,就可以直接使用 Maven 了。

5.1 Maven 相關配置

IDEA 中,Maven 的配置在 File->Settings->Build,Execution,Deployment->Build Tools->Maven:

5.2 JavaSE 工程建立

首先在建立一個工程時,選擇 Maven 工程:

如果勾選上 Create from archetype ,則表示可以根據一個專案骨架(專案模板)來建立一個新的工程,不過,如果只是建立 JavaSE 專案,則不用選擇專案骨架。直接 Next 即可。然後填入專案的座標,即 groupId 和 artifactId。

填完之後,直接 Next 即可。這樣,我們就會獲取一個 JavaSE 工程,專案結構和你用命令創建出來的專案一模一樣。

5.3 JavaWeb 工程建立

在 IDEA 中,建立 Maven Web 專案,有兩種思路:

  • 首先建立一個 JavaSE 專案,然後手動將 JavaSE 專案改造成一個 JavaWeb 專案
  • 建立專案時選擇專案骨架,骨架就選擇 webapp

兩種方式中,推薦使用第一種方式。

5.3.1 改造 JavaSE 專案

這種方式,首先建立一個 JavaSE 專案,建立步驟和上面的一致。

專案建立完成後,首先修改 pom.xml ,配置專案的打包格式為 war 包。 這樣,IDEA 就知道當前專案是一個 Web 專案:

然後,選中 JavaSE 工程,右鍵單擊,選擇 Open Module Settings,或者直接按 F4,然後選擇 Web,如下圖:

接下來,在 webapp 目錄中,新增 web.xml 檔案。

注意,一定要修改 web.xml 檔案位置:

配置完成後,點選 OK 退出。

專案建立完成後,接下來就是部署了。

部署,首先點選 IDEA 右上角的 Edit Configurations:

然後,配置 Tomcat:

接下來選擇 Deployment 選項卡,配置要釋出的專案:


最後,點選 IDEA 右上角的三角符號,啟動專案。

5.3.2 通過 webapp 骨架直接建立

這種方式比較簡單,基本上不需要額外的配置,專案建立完成後,就是一個 web 專案。只需要我們在建立專案時,選擇 webapp 骨架即可。

選擇骨架之後,後面的步驟和前文一致。

專案建立成功後,只有 webapp 目錄,這個時候,自己手動建立 java 和 resources 目錄,建立完成後,右鍵單擊,選擇 Mark Directory As,將 java 目錄標記為 sources root,將 resources 目錄標記為 resources root 即可。

凡是在 IDEA 右下角看到了 Enable Auto Import 按鈕,一定點一下

6. Maven 依賴管理

Maven 專案,如果需要使用第三方的控制元件,都是通過依賴管理來完成的。這裡用到的一個東西就是 pom.xml 檔案,概念叫做專案物件模型(POM,Project Object Model),我們在 pom.xml 中定義了 Maven 專案的形式,所以,pom.xml 相當於是 Maven 專案的一個地圖。就類似於 web.xml 檔案用來描述三大 web 元件一樣。

這個地圖中都涉及到哪些東西呢?

6.1 Maven 座標

<dependencies>
  <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.11</version>
    <scope>test</scope>
  </dependency>
</dependencies>
  • dependencies

在 dependencies 標籤中,新增專案需要的 jar 所對應的 maven 座標。

  • dependency

一個 dependency 標籤表示一個座標

  • groupId

團體、公司、組織機構等等的唯一標識。團體標識的約定是它以建立這個專案的組織名稱的逆向域名(例如 org.javaboy)開頭。一個 Maven 座標必須要包含 groupId。一些典型的 groupId 如 apache 的 groupId 是 org.apache.

  • artifactId

artifactId 相當於在一個組織中專案的唯一識別符號。

  • version

一個專案的版本。一個專案的話,可能會有多個版本。如果是正在開發的專案,我們可以給版本號加上一個 SNAPSHOT,表示這是一個快照版(新建專案的預設版本號就是快照版)

  • scope

表示依賴範圍。

我們添加了很多依賴,但是不同依賴的使用範圍是不一樣的。最典型的有兩個,一個是資料庫驅動,另一個是單元測試。

資料庫驅動,在使用的過程中,我們自己寫程式碼,寫的是 JDBC 程式碼,只有在專案執行時,才需要執行 MySQL 驅動中的程式碼。所以,MySQL 驅動這個依賴在新增到專案中之後,可以設定它的 scope 為 runtime,編譯的時候不生效。

單元測試,只在測試的時候生效,所以可以設定它的 scope 為 test,這樣,當專案打包釋出時,單元測試的依賴就不會跟著釋出。

6.2 依賴衝突

  • 依賴衝突產生的原因

在圖中,a.jar 依賴 b.jar,同時 a.jar 依賴 d.jar,這個時候,a 和 b、d 的關係是直接依賴的關係,a 和 c 的關係是間接依賴的關係。

6.2.1 衝突解決

  1. 先定義先使用
  2. 路徑最近原則(直接宣告使用)

以 spring-context 為例,下圖中 x 表示失效的依賴(優先順序低的依賴,即路徑近的依賴優先使用):

上面這兩條是預設行為。

我們也可以手動控制。手動控制主要是通過排除依賴來實現,如下:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>5.1.9.RELEASE</version>
    <exclusions>
        <exclusion>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
        </exclusion>
    </exclusions>
</dependency>

這個表示從 spring-context 中排除 spring-core 依賴。

7. Maven 私服

Maven 倉庫管理也叫 Maven 私服或者代理倉庫。使用 Maven 私服有兩個目的:

  1. 私服是一個介於開發者和遠端倉庫之間的代理
  2. 私服可以用來部署公司自己的 jar

7.1 Nexus 介紹

Nexus 是一個強大的 Maven 倉庫管理工具,使用 Nexus 可以方便的管理內部倉庫同時簡化外部倉庫的訪問。官網是:https://www.sonatype.com/

7.2 安裝

  • 下載

下載地址:https://www.sonatype.com/download-oss-sonatype

  • 解壓

將下載下來的壓縮包,拷貝到一個沒有中文的路徑下,然後解壓。

  • 啟動

解壓之後,開啟 cmd 視窗(以管理員身份開啟 cmd 視窗),然後定位了 nexus 解壓目錄,執行 nexus.exe/run 命令啟動服務。

這個啟動稍微有點慢,大概有 1 兩分鐘的樣子

啟動成功後,瀏覽器輸入 http://lcoalhost:8081 開啟管理頁面。

開啟管理頁面後,點選右上角上的登入按鈕進行登入,預設的使用者名稱/密碼是 admin/admin123。當然,使用者也可以點選設定按鈕,手動配置其他使用者。

點選 Repositories 可以檢視倉庫詳細資訊:

7.2.1 倉庫型別

名稱 說明
proxy 表示這個倉庫是一個遠端倉庫的代理,最典型的就是代理 Maven 中央倉庫
hosted 宿主倉庫,公司自己開發的一些 jar 存放在宿主倉庫中,以及一些在 Maven 中央倉庫上沒有的 jar
group 倉庫組,包含代理倉庫和宿主倉庫
virtual 虛擬倉庫

7.2.2 上傳 jar

上傳 jar,配置兩個地方:

  • Maven 的 conf/settings.xml 檔案配置:
<server>
  <id>releases</id>
  <username>admin</username>
  <password>admin123</password>
</server>
<server>
  <id>snapshots</id>
  <username>admin</username>
  <password>admin123</password>
</server>

在要上傳 jar 的專案的 pom.xml 檔案中,配置上傳路徑:

<distributionManagement>
    <repository>
        <id>releases</id>
        <url>http://localhost:8081/repository/maven-releases/</url>
    </repository>
    <snapshotRepository>
        <id>snapshots</id>
        <url>http://localhost:8081/repository/maven-snapshots/</url>
    </snapshotRepository>
</distributionManagement>

配置完成後,點選 deploy 按鈕,或者執行 mvn deploy 命令就可以將 jar 上傳到私服上。

7.2.3 下載私服上的 jar

直接在專案中新增依賴,新增完成後,額外增加私服地址即可:

<repositories>
    <repository>
        <id>local-repository</id>
        <url>http://localhost:8081/repository/maven-public/</url>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>

8. 聚合工程

所謂的聚合工程,實際上也就是多模組專案。在一個比較大的網際網路專案中,專案需要拆分成多個模組進行開發,比如訂單模組、VIP 模組、支付模組、內容管理模組、CMS、CRM 等等。這種拆分方式,實際上更接近於微服務的思想。在一個模組中,還可以繼續進行拆分,例如分成 dao、service、controller 等。

有人可能會說,這個分包不就行了嗎?

小專案當然可以分包,大專案就沒法分包了。比如,在一個大的電商系統中,有一個子模組叫做使用者管理、還有一個子模組叫做訂單管理,這兩個子模組都涉及到使用者,像這種情況,我們就需要將使用者類單獨提取出來,做成單獨的模組,供其他模組呼叫。

8.1 多模組專案展示

|--javaboy-parent
      |-- javaboy-cms
      |-- javaboy-crm
      |-- javaboy-manger
           |-- javaboy-manager-model
           |-- javaboy-manager-dao
           |-- javaboy-manager-service
           |-- javaboy-manager-web

以 javaboy-manger 為例,javaboy-manager 本身並不提供功能,它只負責管理他自己的子模組,而他的子模組每一個都無法獨立執行,需要四個結合在一起,才可以執行。專案打包時,model、dao、service 都將打包成 jar,然後會自動將打包好的 jar 複製到 web 中,再自動將 web 打包成 war 包。

8.2 IDEA 中建立聚合工程

1.建立一個空的 Maven 專案:

專案建立完成後,由於 parent 並不參與業務的實現,只是用來管理它的子模組,因此,src 目錄可以將其刪除。

2.選中當前工程,右鍵單擊,New->Module


然後繼續選擇建立一個 Maven 專案:

在 IDEA 中,已經預設指明瞭當前 Module 的 parent,開發者只需要填入當前 Module 的 artifactId 即可:

javaboy-manager 建立完成後,此時,觀察 javaboy-parent 的 pom.xml 檔案,發現它自動加上了 packing 屬性:

其中,它的 packaging 屬性值為 pom,這表示它是一個聚合工程,同時,他還多了 modules 節點,指明瞭它自己的子模組。
同時,注意 javaboy-manager ,它自身多了一個 parent 節點,這個 parent 節點描述了它的父模組的屬性值:

<parent>
    <artifactId>javaboy-parent</artifactId>
    <groupId>org.javaboy</groupId>
    <version>1.0-SNAPSHOT</version>
</parent>

這個 parent 不僅僅是一個簡單的父子關係描述,它存在繼承關係,一般我們可以在 parent 中統一定義依賴或者外掛的版本號

3.由於 javaboy-manager 本身也是一個聚合工程,因此,javaboy-manager 的 src 目錄也可以刪除。

4.選中 javaboy-manager,右鍵單擊,New->Module 建立一個新的 Maven 模組出來。這個步驟類似於第二步,不在贅述。
這裡,新的 javaboy-manager-model 建立成功後,我們手動配置它的 packaging 屬性值為 jar。

5.依照第 4 步,再分別建立 javaboy-manager-service 以及 javaboy-manager-dao
6.繼續建立 javaboy-manager-web 模組,不同於其他模組,web 模組需要打包成 war。web 模組建立可以參考【第五篇文章】。
7.web 工程建立完成後,完善模組之間的繼承關係。

javaboy-manager-web 依賴 javaboy-manager-service
javaboy-manager-service 依賴 javaboy-manager-dao
javaboy-manager-dao 依賴 javaboy-manager-model

注意,依賴預設是有傳遞性的,即在 javaboy-manager-dao 中依賴了 javaboy-manager-model,在 javaboy-manager-service 也能訪問到。

配置後的依賴關係如下圖:

接下來就可以在不同的模組中寫程式碼,然後進行專案部署了。部署方式參考【第五篇文章】

有一個需要注意的地方,在多模組專案中,web 專案打包需要注意以下問題:

  1. 不可以直接單獨打包
  2. 如果要打包,有兩種方式:
  • 第一種就是先手動挨個將 model、dao、service 安裝到本地倉庫
  • 從聚合工程處打包,即從 web 的parent 處打包。

關注微信公眾號【江南一點雨】,回覆 Maven,獲取本文電子版,或者訪問 http://maven.javaboy.org 檢視本文電子書。

相關推薦

Maven教程真的夠用

1 Maven 介紹 1.1 為什麼使用 Maven 由於 Java 的生態非常豐富,無論你想實現什麼功能,都能找到對應的工具類,這些工具類都是以 jar 包的形式出現的,例如 Spring,SpringMVC、MyBatis、資料庫驅動,等等,都是以 jar 包的形式出現的,jar 包之間會有關聯,在使用一

Spring 學習看鬆哥乾貨就夠

1. Spring 簡介 我們常說的 Spring 實際上是指 Spring Framework,而 Spring Framework 只是 Spring 家族中的一個分支而已。那麼 Spring 家族都有哪些東西呢? Spring 是為了解決企業級應用開發的複雜性而建立的。在 Spring 之前,有一個

什麼叫工業4.0?接地氣的文章終於講懂

早年從事過工業自動化行業,後來為了賺點講課費做零花錢,去幾個城市,講過《工業網際網路與工業文明史》這門課,以至於很多人以為我很懂工業網際網路(其實我也就是半桶水而已)。 今天早上樂視網的好基友問我,工業4.0 到底是個啥,本來答應給他單獨講一遍,後來一想,不如整理下材料和

[轉]別磨嘰你也是圖像識別專家

and 擴展 函數 概率 好的 tuning 辦公 執行 維護 圖像識別是當今深度學習的主流應用,而Keras是入門最容易、使用最便捷的深度學習框架,所以搞圖像識別,你也得強調速度,不能磨嘰。本文讓你在最短時間內突破五個流行網絡結構,迅速達到圖像識別技術前沿。 作者 |

資料治理怎麼做?長文終於講清楚

引言: 股份制改革對我國銀行業來說只是一個開始,企業在風險管理、創造價值等方面還有很長的路要走。風險管理要求提供精準的資料模型、創造價值要求充分銀行資料資產,這是資料治理的外部推動因素。此外,隨著第三次工業革命的到來,銀行業也需要進入定製化時代,以更低的成本,生產多樣化的金融產品,從而滿足不同顧

Maven部落格就夠

Maven的簡介 Apache Maven,是一個軟體專案管理及自動構建工具,由Apache軟體基金會所提供。基於專案物件模型概念,Maven利用一箇中央資訊片斷能管理一個專案的構建、報告和文件等步驟。 Maven也可被用於構建和管理各種專案,例如C#,Ruby,Scala和其他語言

手碼兩SpringMVC 包教包會

1. SpringMVC 簡介 1.1 Spring Web MVC是什麼 Spring Web MVC 是一種基於 Java 的實現了 Web MVC 設計模式的請求驅動型別的輕量級 Web 框架,即使用了 MVC 架構模式的思想,將 web 層進行職責解耦,基於請求驅動指的就是使用請求-響應模型,框架的目

學習linux命令2w多的linux命令詳解

用心分享,共同成長 沒有什麼比每天進步一點點更重要了 本文已收錄到我的github:https://github.com/midou-tech/articles/tree/master/docs/linux ,歡迎star和issues。 序言  本篇文章主要講解了一些linux常用命令,主要講解

Java二進位制和位運算準能餵飽你

> 基礎不牢,地動山搖。本文已被 [**https://www.yourbatman.cn**](https://www.yourbatman.cn) 收錄,裡面一併有Spring技術棧、MyBatis、JVM、中介軟體等小而美的**專欄**供以免費學習。關注公眾號【**BAT的烏托邦**】逐個擊破,深入掌握

跟我一起.NetCore之MVC過濾器看完走路可以仰著頭走

**前言** MVC過濾器在之前Asp.Net的時候就已經廣泛使用啦,不管是面試還是工作,總有一個考點或是需求涉及到,可以毫不疑問的說,這個技術點是非常重要的; 在之前參與的面試中,得知很多小夥伴只知道有一兩個過濾器,而對其執行順序瞭解的還是很模糊,少部分小夥伴甚至還沒有使用過。這裡就詳細來說說這塊的內容。

上一是copy整理網上的內容是一個推薦

定義 問題 插件 寬度 移動端 wip 命名 www. 按鈕 因為公司用的 輪播組件是 aui 的 ui庫這個輪播有樣式單一等等很多的問題.... 包括滑動BUG(自己也踩了一個小坑,高度和寬度問題...需要設定好,滑動提示按鈕點 醜陋............ 無力吐槽 實

java工程師linux命令文章就夠

sep 實戰 reads href 改變 sig 腳本 喜歡 這樣的 精彩內容推薦 一套java架構師學習資源,等你拿 你所需要的大數據視頻教程 微服務資源springboot、springcloud、docker、dubbo項目實戰等傾心分享 shell簡介

學習JQuery文件即可入門

子元素 ref todolist 索引 cas 進行 原生 don 結構 JQuery的引用本地文件引入:<script src=‘js/jquery.min.js‘></script> 內容分布式網絡CDN//非壓縮版<script src=

如何快速入門python文章幫你指明方向(零基礎的福音)

一個 交流群 企業 小項目 調用 不錯 數據類型 數據 入門 這是曾經在悟空問答回答的一個問題,後來效果還不錯,所以發出來,裏面結合了當年的學習經驗和一些行業老師的建議,希望幫助更多有興趣的人。(第三點福利) Python語言這幾年大火,在世界編程語言排行中Python也位

對比Git 與 SVN講的很易懂

evel 接下來 核心概念 ssa 操作 過程 cal nal 當前目錄 歡迎大家前往騰訊雲+社區,獲取更多騰訊海量技術實踐幹貨哦~ 本文由騰訊工蜂發表於雲+社區專欄 導語 本文從 Git 與 SVN 的對比入手,介紹如何通過 Git-SVN 開始使用 Git,並總結平

對比 Git 與 SVN講的很易懂

一、Git vs SVNGit 和 SVN 孰優孰好,每個人有不同的體驗。 Git是分散式的,SVN是集中式的 這是 Git 和 SVN 最大的區別。若能掌握這個概念,兩者區別基本搞懂大半。因為 Git 是分散式的,所以 Git 支援離線工作,在本地可以進行很多操作,包括接下來將要重磅推出的分支功能。而

如何高效python?文章就是為想的你寫的

如過你一直想學Python,但是不知道如何入手,那就別猶豫了。這篇文章就是為你寫的。   疑問 隨著資料科學概念的普及,Python這門並不算新的語言火得一塌糊塗。 因為寫了幾篇用Python做資料分析的文章,經常有讀者和學生在留言區問我,想學習Python,該

Python Web不知道怎麼?看就夠!

Python有很多作用,接觸過python的朋友肯定知道其幾乎無所不能,前端、後端、資料、ML\AI、自動化、爬蟲、資料分析,人工智慧等等。 第一階段:Python入門(框架再怎麼變,基本語法不會變,基礎中的基礎) ·資料型別 ·迴圈判斷 ·常用模組 ·函式、迭代器、裝飾器

淘寶後臺技術大揭祕不看你雙十一要損失幾個億

轉眼間雙十一來了, 聽說你已經把寶貝提前收藏, 只待今天瘋狂“剁手” 那麼問題來了,除了買買買, 你需要程式猿男朋友嗎? 會寫程式碼搶秒殺的那種, 為了你雙十一的便利,我什麼都願意, 但請發現我默默的付出,記住我的好! 據不完全統計,正是因為大家熱情的刷刷刷,阿里巴巴

從零開始產品第五:三個環境開發、測試和線上

本篇為【從零開始學產品】系列課第1章第4節 歡迎到公眾號選單欄,獲取產品經理課程更多資料     上節課我們說到了,Bug的生命週期,而只有在測試環境和線上環境發現的Bug,才會被稱之為Bug。 倒底什麼是測試環境,什麼是線上環境,