1. 程式人生 > >intellij idea 管理module和project,以及git管理專案

intellij idea 管理module和project,以及git管理專案

introduction

這篇筆記主要包括兩部分內容,第一部分是介紹idea如何操作project和module。第二部分則是建立git專案,然後idea中匯入專案,然後建立多個module,以及一些基礎的add,commit,push操作。
下面的git操作適用於github和gitlab。
兩者沒太多本質區別。

  1. 先說一下相同點,二者都是基於web的Git倉庫,在很大程度上GitLab是仿照GitHub來做的,它們都提供了分享開源專案的平臺,為開發團隊提供了儲存、分享、釋出和合作開發專案的中心化雲端儲存的場所。
  2. GitHub作為開原始碼庫及版本控制系統,擁有超過900萬的開發者使用者,目前仍然是最火的開源專案託管系統。GitHub同時提供公共倉庫和私有倉庫,但如果要使用私有倉庫,是需要付費的。
  3. 而GitLab解決了這個問題,你可以在上面建立私人的免費倉庫。
  4. GitLab讓開發團隊對他們的程式碼倉庫擁有更多的控制,相比於GitHub,它有不少的特色:
  5. 允許免費設定倉庫許可權;允許使用者選擇分享一個project的部分程式碼;允許使用者設定project的獲取許可權,進一步的提升安全性;可以設定獲取到團隊整體的改進進度;通過innersourcing讓不在許可權範圍內的人訪問不到該資源。
  6. 從程式碼私有性方面來看,有時公司並不希望員工獲取到全部的程式碼,這個時候GitLab無疑是更好的選擇。但對於開源專案而言,GitHub依然是程式碼託管的首選。

idea的project &module

project & module 概念

在 IntelliJ IDEA 中,沒有類似於 Eclipse 工作空間(Workspace)的概念,而是提出了Project和Module這兩個概念。接下來,就讓我們一起看看 IntelliJ IDEA 官方是如何描述兩者的吧!對於 Project,IntelliJ IDEA 官方是這樣介紹的:
A project is a top-level organizational unit for your development work in IntelliJ IDEA. In its finished form, a project may represent a complete software solution. A project is a collection of:

Your work results: source code, build scripts, configuration files, documentation, artifacts, etc.
SDKs and libraries that you use to develop, compile, run and test your code.
Project settings that represent your working preferences in the context of a project.
A project has one or more modules as its parts.

對於 Module,IntelliJ IDEA 官方是這樣介紹的:

A module is a part of a project that you can compile, run, test and debug independently.
Modules are a way to reduce complexity of large projects while maintaining a common (project) configuration.
Modules are reusable: if necessary, a module can be included in more than one project.
通過上面的介紹,我們知道:在 IntelliJ IDEA 中Project是最頂級的結構單元,然後就是Module,一個Project可以有多個Module。目前,主流的大型專案結構基本都是多Module的結構,這類專案一般是按功能劃分的,比如:user-core-module、user-facade-module和user-hessian-module等等,模組之間彼此可以相互依賴。通過這些Module的命名可以看出,它們都是處於同一個專案中的模組,彼此之間是有著不可分割的業務關係的。

open project 、new project

  1. 路徑: File -> open project(open) 選擇一個專案;專案一般帶.idea檔案。如果是一個git後的project,直接open即可。
  2. 如果自己新建立一個project,則需要 File -> new project.
  3. 或者open exist project等。

增加module

如果有了project了,剩下的就是匯入module或者new module了。
方法: 直接右鍵project,然後用new module。然後寫入 groupid和artifactid。就在project裡建立了。

如何在當前windows下面新增module

注意: 選擇File-> project structure -> 選擇+; 這時候就出現了 new module和import module,就可以操作了。

git project

ssh配置

這裡我們要做的事情就是分別對githubn和gitlab生成對應的金鑰(預設情況下本地生成的祕鑰位於/Users/使用者名稱/.ssh/),並且配置git訪問不同host時訪問不同的金鑰,流程如下:
1、 在gitbash中使用ssh-keygen -t rsa -C "公司郵箱地址"生成對應的gitlab金鑰:id_rsa和id_rsa.pub
2、 將gitlab公鑰即id_rsa.pub中的內容配置到公司的gitlab上。

利用gitlab建立一個專案

  1. 開啟公司或者開源的gitlab地址,找到new project,輸入project name和description就可以了。這時候我們建立了一個空的gitlab project。
  2. 然後到我們的bash客戶端進行操作。操作命令如下:
1084  git clone [email protected]/project-name.git
 1085  ls
 1086  cd project-name
 1087  ls
 1088  touch README.md
 1089  ls
 1090  vi README.md
 1091  ls
 1092  git add README.md
 1093  git commit -m "add readme"
 1094  git push -u origin master

這時候我們就把gitlab project 弄到了本地並加入了readme.md檔案,基本上後續就可以匯入idea開始操作了

匯入idea操作專案

非常容易,File->open-> 找到 project-name開啟即可。後續new module。

idea 同步

  1. add 把這個目錄加入到了本地專案(其實是工作空間到快取區)
  2. commit 提交(快取區到本地倉庫)
  3. push 釋出到伺服器(本地倉庫到遠端伺服器倉庫)
    這是幾個主要的命令。後續可以慢慢補進來。
    在這裡插入圖片描述

summary

  1. ssh-key的作用是產生對公司郵箱的加密結果,產生了一個私鑰和一個公鑰,任何公鑰加密之後,我們用私鑰解密,從而驗證是否是這個郵箱。從而git操作的時候無需驗證使用者資訊,是非常好的功能。
  2. gitlab和github,都是git倉庫,各有特點;gitlab更自由,github更大。 前者是google系;後者被微軟收購,個人有點心虛其發展,畢竟被公司主導的開源有一些精神互斥。違背了free的靈魂。
  3. 簡單而言, idea裡,project是一個工程,裡面有很多module; 類似eclipse的workspace裡面有很多project是一樣的概念。 module是獨立執行的專案模組。
  4. add(加入快取); commit(加入本地倉庫); push(發到遠端倉庫)
  5. module new/import 命令多用;
  6. 多用File -> project structure.
  7. create project 是在gitlab介面操作; 然後bash命令列匯出; 最後用idea open出來,然後自己new module開始擼程式碼,好了push過去。多人的話先pull在push。

參考