課堂筆記03 (git、maven、gradle)

1.git

初始化本地倉庫 git init 

關聯遠程倉庫 : git remote add origin <address>

克隆: git clone <address>

拉取:git pull origin master

添加:git add .

提交:git commit -m "..."

推送:git push (-u) origin master 第一次加-u,加上-u指定當前origin倉庫爲主倉庫,

之後使用 git pull / git push 默認爲這個倉庫。

git安裝與配置:

windows 下需要配置環境變量GIT_HOME, PATH(bin,/usr/bin)usr/bin

執行 ssh-keygen -t rsa -C "email address" 生成ssh公鑰,將這個公鑰添加到遠程倉庫中

ubuntu https://blog.csdn.net/vslyu/article/details/80337675

常用命令:

安裝後配置用戶名和郵箱:(--global 爲全局,也可以單獨爲一個項目設置)

git config --global user.name "name"

git config --global user.email "email"

查看當前倉庫的狀態:

git status

查看提交日誌:(可以看到提交編號&說明信息等)

git log 

git reflog

版本回退:(HEAD可以用提交編號)

git reset --hard HEAD^        回退到上一個版本
git reset --hard HEAD^^        回退到上兩個版本
git reset --hard HEAD~100    回退到前100個版本

回到過去使用git log 確定版本號、返回未來使用git reflog 確定版本號

創建分支:

git checkout -b dev (-b 表示創建並且切換)

git branch dev

查看所有分支:(* 代表當前分支)

git branch

git branch -a

切換回主分支:

git checkout master

合併某一分支:

git merge dev

刪除分支:

git branch -d dev

工作失誤操作:

如果當前工作還在工作區,那麼使用 git checkout -- <filename> 來恢復爲之前的文件

如果已經放入到了暫存區,那麼使用 git reset HEAD <filename> 來恢復到工作區中

如果已經提交到了本地倉庫中,那麼就需要回退一個版本 git reset --hard HEAD^

添加標籤:

git tag v1.0 (給當前最新的commit打上標籤)

git tag v0.9 <commit_id> (給歷史版本打上標籤)

查看標籤

git tag

查看標籤信息:

git show <tagname>

標籤的使用例子:

git tag -a v0.1 -m "version 0.1" <commit_id>

刪除標籤:

git tag -d v0.1

推送標籤到遠程:

git push origin <tagname>     (推送一個)

git push  origin --tags    (推送所有)

刪除遠程標籤:

git tag -d <tagname>

git push origin :refs/tags/<tagname>

git分支管理: https://blog.csdn.net/u014041012/article/details/50676702

2.maven命令

jdk 安裝與配置:https://jingyan.baidu.com/article/6dad5075d1dc40a123e36ea3.html

maven 安裝與配置:https://blog.csdn.net/csj941227/article/details/78253480

創建Java項目:

mvn archetype:generate -DgroupId=packageName -DartifactId=projectName -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false 

 

創建Javaweb項目命令:

mvn archetype:generate -DgroupId=package -DartifactId=webappName -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false 

3.gradle嘗試

構建項目:https://gradle.org/guides/#getting-started

#瞭解Groovy: (將要使用這種語言來構建項目,完全兼容Java,因爲都是基於jvm的)

Groovy 語言的特點:

1.句尾可以不加分好

2.方法的最後一個表達式默認爲返回值

3.字段有默認的getter setter 方法

4.不會有空指針異常, == 和 equals 是相同的

5.def 可選類型定義

6.括號是可選的

7.集合list  、map實際類型爲Java中的ArrayList和 LinkedHashMap

代碼:(隨便看,回憶一下)

public class ProjectVersion{
    private int major
    private int minor
    public ProjectVersion(int major, int minor){
        this.major = major
        this.minor = minor
    }
    public int getMajor(){
       major
    }
    public void setMajor(int major){
        this.major = major
    }
}

ProjectVersion v1 = new ProjectVersion(1,2);
println v1.major

ProjectVersion v2 = null
println v2 == v1

//可選的類型定義
def version = 1

//assert
//assert version == 2

//括號是可選的
println(version)
println version

// 字符串
def s1 = 'imooc'
def s2 = "gradle version : ${version}"
def s3 = '''myname
is
liyuan'''
println s1
println s2
println s3

//集合api
//list
def buildTools = ['ant','maven']
buildTools << 'gradle'
assert buildTools.getClass() == ArrayList
assert buildTools.size() == 3
//map
def buildYears = ['ant':2000,'maven':2004]
buildYears.gradle = 2009

println buildYears.ant
println buildYears['gradle']
println buildYears.getClass()

//閉包
def c1 = {
    v ->
        print v
}

def c2 = {
    print "hello"
}

def method1(Closure closure){
    closure('param')
}

def method2(Closure closure){
    closure()
}

method1(c1)
method2(c2)

gradle任務

def createDir = {
    path ->
        File dir = new File(path)
        if( !dir.exists() ){
            dir.mkdirs()
        }
}

task makeJavaDir(){
    def paths = ['src/main/java','src/main/resources','src/test/java','src/test/resources']
    doFirst{
        paths.forEach(createDir)
    }
}

task makeWebDir(){
    dependsOn 'makeJavaDir'
    def paths = ['src/main/webapp']
    doLast{
        paths.forEach(createDir)
    }
}

依賴管理:

常用倉庫:mavenCentral / jcenter

repositories {
    maven{
        url ''
    }
    mavenLocal()
    mavenCentral()
}

可以配置多個依賴倉庫、按它們的排列順序來查找依賴,上面代碼先是自定義的倉庫

之後是本地maven倉庫,之後是公共倉庫

由於依賴具有傳遞性,所以會產生依賴衝突,出現依賴衝突gradle會採用最新的,

修改默認解決策略:(...感覺沒用)

configurations.all{
    resolutionStrategy{
        failOnVersionCOnflict()
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章