當前位置:首頁 » 數據倉庫 » gradle如何配置私服倉庫
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

gradle如何配置私服倉庫

發布時間: 2023-03-27 23:57:29

① 設置Gradle的本地倉庫路徑

gradle的默認倉庫路徑為用戶目錄下的.gradle目錄,gradle並沒有像maven那樣提供配置文件,若要修改默認倉庫路徑,我們可以設置環境變數GRADLE_USER_HOME,windows下同理。我把倉庫設置在gradle目錄下
Linux:

Windows:

② 自定義Gradle Plugin入門——Git倉庫管理插件

以前的項目業務非常多,分了很多模塊,每個模塊都做成庫上傳都倉庫。這樣的話每次開發新業務切換分支都累個半死。

所以組友寬里的大佬搞了一些腳本,有 shell 的,有 python 的,但是要多學一門語言就感覺很頭疼納告櫻,所以想著能不能用 Gradle 寫個插件實現。好吧,為了不學 shell 和 python ,花了很長時間研究 Gradle ,笑死。

這個插件主要的功能就是從不同的遠程拉取多個倉庫到當前項目洞叢,後期切換分支的時候,修改一下分支名就好了,具體使用方式如下

[圖片上傳失敗...(image-4b6638-1647489362381)]

[圖片上傳失敗...(image-bd7c29-1647489362381)]

在上面定義好擴展之後可以在build.gradle調用

[圖片上傳失敗...(image-20a255-1647489362381)]

[圖片上傳失敗...(image-641387-1647489362381)]

[圖片上傳失敗...(image-fed14d-1647489362381)]

[圖片上傳失敗...(image-c0ca90-1647489362381)]

自定義插件的方式到這就結束了。這個步驟比較初級,還有很多需要完善的,但是新手入門已經是夠了,看起來非常簡單,實際上我花了超過20小時的時間來完成,中間遇到各種編譯不通過,依賴出問題, Gradle 報錯看不懂,等等問題

總而言之, Gradle 非常復雜,但也非常有用,學一點皮毛能減少大量的時間,多摸魚不好嗎!!!

以上的功能還有不滿意的地方:

如果有大佬懂的,或者以後實力上漲了,有解決辦法了再繼續完善。

③ Linux下Nexus 3私服配置及gradle配置使用

參考戰斗名族大神的文章
https://habr.com/ru/post/416665/

註:我這里用的是zsh,配置使用 .zshrc

Nexus安裝

使用 ./nexus start 啟動,如果看到如下界面,證明我們配置成功了

我們現在想增加我們自己的私有倉庫,如下圖操作就可以

點擊 Create repository 選擇 maven2 (hosted) 託管模式

到這里我們的私有maven庫就配置完成了!野山!!

我們使用兩種方式配置(1:maven方式,2:maven-publish方式)

首先我們創建一個測試項目,並創建一個libaray

在我們項目的根目錄的 build.gradle 中配置剛剛建立的倉庫

然後在gradle.properties文件中配置我們的gradle(此處配置信息放在local.properties文件中更好,因為該文件是本地文件,不上傳至gitlab上)

再次配置我們libraray下 build.gradle 文件

接下來 Sync Now 一下頌高中,如果沒出錯的話證明我們的配置是成功的,接下來我們按照下圖點擊上傳即可

然後回到Nexus界面,如出現下圖中的配置,證明我們上傳成功了,如下圖:

我們單獨配置一個名稱為 publisher.gradle 文件,如下:

在我們使用的地方引入就可以

我們使用命令上傳或圖形化上傳念畢
1:命令

2:圖形化

參考:
https://blog.csdn.net/KingBoyWorld/article/details/78917855
https://www.jianshu.com/p/6954613c13ef

如何配置gradle的遠程倉庫

最簡單的方法。用RadioButton控制項就行了。何苦搞得這么累呢。如果真要這樣做也可以就是五個控制項共用一個事件同時訂閱相同事件然後再判斷你選中的Checkbox其他的為假代碼如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
運行 gradle -q publish 可發布 源代碼, classed-jar 包到 204 的 nexus 庫。
注意:
1、 jar包的 名字(artifactId) 使用項目名稱;
2、 version 設置 和 publish 的 地址要匹配, releases 地址對應到真實版本, snapshots地址對應為 snapshot版本(如:version=0.1.2.snapshot)。

3、在其他項目中引用發布的包,
只要在 build.gradle 文件的 dependencies 加類似:
compile group: 'group值', name: 'artifactId值', version: 'version值'

在 eclipse 環境下,就能查看 jar 包的源代碼,自動構建 類路徑。

⑤ 如何使用Gradle的maven-publish將jar包或者war包上傳到nexus倉庫

首先,在build.gradle里邊聲明依賴maven-publish插件:

apply plugin: 'maven-publish'

然後,配置項目的信息和和nexus的信息:

publishing {
publications {
maven(MavenPublication) {
groupId project.group
artifactId project.name
version project.version //若是war包,就寫components.web,若是jar包,就寫components.java
from components.web
}
}
repositories {
maven { if (project.version.endsWith('-SNAPSHOT')) {
url = "快照版本的nexus倉庫地址"
} else {
url = "release版本的倉庫地址"
}

credentials {
username 'nexus倉庫用戶名'
password 'nexus倉庫密碼'
}
}
}
}

然後執行 :

gradle

插件會自動生成pom文件,若是jar包,則會自動包含相應的依賴信息,若是war包,則生成的pom文件不會包含依賴信息(因為不需要)

看到如下的輸出,則表明上傳成功:

標簽: java, gradle

⑥ gradle 初了解

title: gradle基礎
date: 2018-01-12 14:50:13
categories: android
tags: android基礎學習

Gradle 是一個能通過插件形式自定義構建邏輯的優秀構建工具。

以下的一些特性讓我們選擇了 Gradle:

這里主要記錄幾個比較常用,重要的點。

gradle的蘆者依賴主要分成本地包依賴和遠程包依賴。
依賴的關鍵字主要包括:

依賴格式:

其中的group表示組織,name表示要依賴的庫,vesion表示版本。
我們可以簡寫成

當然,不單只有對jar包的依賴,還可以有對文件的依賴,對項目的依賴早嘩鎮,他們的寫法依次如下:

上面講到的就是本地依陸粗賴的方式:

首先需要添加遠程倉庫,android中至少添加一個遠程倉庫,例如使用開放的maven倉庫。

然後,就對添加具體依賴。

啟動混淆非常簡單,只需要在 build.gradle 中啟動即可。

其中的 minfyEnabled 默認是false,即不混淆,因為啟動混淆編譯速度會比較慢。
與混淆相關的還有一個 shrinkResources 屬性,可以通過將其設置為 true ,設置資源文件壓縮。

⑦ Mac安裝Gradle以及配置本地倉儲

這里以mac為例安李戚裝哪拍陵gradle,其實windows同理。

如對您有幫助歡迎點贊,留賀扒言討論,謝謝。

⑧ gradle 配置 nexus repository

1.mac :

   1).解壓陵寬大文件進入bin/

   2).   ./nexus start 可以直接運行,注意有個點

2.windows

   1).進入nexus目錄,在bin/jsw 下找到nexus.exe

   2).nexus.exe / install安裝成系統服務

   3).nexus.exe / start直接運行

   4).nexus.exe / stop停止

   5).nexus.exe / uninstall卸載

3.ubuntu

http://www.jianshu.com/p/9740778b154f

1).瀏覽器中http://127.0.0.1:8081/ 默認網址可以進入管理界面

2).內置賬戶 admin admin123

3)點擊左上螺絲,進入 設置界面,默認內置了一些庫

4).點擊 create repository 

普及一下這幾種類型的區別:

5).配置倉庫

名稱可以修改,其他的配置沒有具體了解

6)點擊create repository之後就創建成功了,會自動跳轉到repository列表界面,點擊條目的按鈕,就可以獲取倉庫路徑了

不詳細說明  maven_push.gradle

apply plugin:'maven'

apply plugin:'signing'

configurations {

deployerJars

}

repositories {

mavenCentral()

}

// 判斷版本尺豎是Release or Snapshots

def isRelease() {

return!VERSION.contains("SNAPSHOT");

}

// 獲取倉庫url

def getRepositoryUrl() {

returnisRelease() ? RELEASE_URL : SNAPSHOT_URL;

}

uploadArchives {

repositories {

mavenDeployer {

beforeDeployment {

MavenDeployment deployment -> signing.signPom(deployment)

}

pom.version = VERSION

pom.artifactId = ARTIFACT_ID

pom.groupId = GROUP_ID

repository(url: getRepositoryUrl()) {

authentication(userName: NAME,password: PASSWORD)// maven授權信息

}

}

}

}

// 進行數字巧慶簽名

signing {

// 當 發布版本 & 存在"uploadArchives"任務時,才執行

required { isRelease() && gradle.taskGraph.hasTask("uploadArchives") }

sign configurations.archives

}

在build.gradle 中引用maven_push.gradle

gradle.properties中配置賬號與倉庫鏈接

最後在task中,點擊uploadArchives上傳

項目的gradle中配置內部maven庫路徑

⑨ 【Gradle深入淺出】——Gradle配置(一)

1.【Gradle深入淺出】——初識Gradle
2.【Gradle深入淺出】——Gradle基礎概念
3.【Gradle深入淺出】——Android Gradle Plugin 基礎概念
4.【Gradle深入淺出】——Gradle配置(一)
5.【Gradle深入淺出】——Gralde配置(二)

前面三篇博客講解了Gradle的基礎概念,看完前面三篇博客我們應該對於Gradle都有了一個基礎的認知,知道了文件的作用,Gradle的基本構成,本篇博客開始就開始進入Gradle的學習,首先講解的是Gradle的配置,Gradle配置應該是我們日常開發中必不可少的技能,平時的打包,編譯等等都需要熟悉Gradle的配置。

我們知道Gradle都關於屬性配置有兩個文件, local.properties 和 gradle.properties ,這兩個文件的實質都是生成Java的 Properties 對象,所以要屬性這兩個文件的作用,首先要屬性下 Properties 類。
我們首先來看下這個類的基本上結構。

看完這個我們應該就有一個大體的認識了, Properties 本質就是一個HashTable,支持設置默認屬性,其他的沒啥區別,哪我們看下 Properties 如何讀取文件呢

可以看到 Properites 給我們提供了三個載入文件的方式,所以這里我們也可以得出一個結論, 使用 Properties 不是必須使用 .properties 格式的文件。
哪可能有人要問了,為啥這里的配置都使用properties格式的文件呢?
我猜測可能是復用Spring Boot中的支持的配置文件,Spring Boot中支持三種格式核爛培的配置文件 YAML,XML,Properties ,具體的差異這里就不展開講解了。
我們可以理解為 .properties 就是類似於json的一套配置文件格式,IDE對於這類文件有特殊的支持,比如注釋等語法,做了統一的規范
Properties文件的格式規范

有了對於Properties類的理解,我們在來看local.properties文件,理解起來就方便類許多,前面幾篇博客已經提到了 local.properties 是Studio自動生成的一個本地配置文件,並且不會提交到遠端,是我們自己本地的配置改唯文件,常見的配置如下:

既然是配置文件,那麼如何在 local.properites 中定義全局變數,然後在build.gradle中讀取呢?比如我們的maven上傳需要用戶的姓名密碼,每個人的都不一樣,所以可以放到local.propertiest文件中

和前面介紹的一樣,我們只需要在local.properties中定義變數,然後在gradle中讀取變數只需要生成Properties類來進行讀取文件。

同樣的這也是一個Properties類型的文件,但這個文件主要是配置和Gradle自身相關的配置內容的,接下來聊聊他的幾個作用:

這里主要是配置本項目在使用Gradle進行編譯時的配置,比如虛擬機堆棧配置(常見的編譯速度優化就在這里配置)

所以看到上面的定義後,我們就可以理解常見的「編譯速度優化」的配置的大概意思

除了剛才說的這個歷基文件用於配置gradle屬性,這個文件還可以用於配置系統屬性和android屬性
並且可以區分配置不同的項目的配置
1、單項目gradle使用代理:gradle/wrapper/gradle-wrapper.properties
2、全局gradle使用代理:userdir/.gradle/gradle.properties

其他的系統變數這里就不列舉了,具體看我們遇到具體場景來設置

接著來看下在gradle.properties文件中如何定義變數,gradle.properties就是官方定義的用來定義變數的文件的地方,所以定義和獲取就不需要像local.properties那麼麻煩了。

獲取變數,就不需要通過文件流讀取文件流,gralde內部自身已經做了這個,我們可以直接引用變數即可。

setting.gradle前面的博客介紹了,是用於配置項目的組成和模塊的,所以一半我們的setting.gradle文件都是這樣的

前面有講過setting.gradle的實質是生成一個Setting對象,我們按住ctrl點擊include就進入了Setting.gradle類,其實就可以知道我們可以調用的api,這里還是介紹我們常用的幾個方法吧。首先來看下最常用的 include 方法。

這里特意把注釋也放了進來,不得不說老外對於注釋真的寫的非常詳細,往往我們忽視了這么冗長的注釋,但當發現問題,從搜索引擎上搜相關資料都時候就會發現,其實大部分就是對於注釋都翻譯。
所以這里我下面介紹都內容,就會發現和上面注釋都大同小異。
首次看下這里的引入方式,一般都是 include ':app' ,這里的語法是這樣的

在這里 : 表示的路徑的分隔符,也就是 的意思,所以這里都需要使用 : ,其次這里都路徑是相當於根目錄的路徑。然後我們可以看到其實這個方法是可變參數,所以這里支持多個項目引入。

所以我們如果有一個這樣的目錄結構的項目

那麼這時的setting.gradle就是這樣

這時我們可能有個問題:我們如果引入的不是根目錄下的項目怎麼辦?也就是引入其他路徑下的項目作為我們的子mole,因為這里一直是相對與根目錄的路徑

這樣我們就可以引入不在這個項目中的Lib作為我們這個項目的Lib,組件化的工程經常就會這樣使用。
最後我們看下還有一個小知識點,我們如果想改變這個Lib在Studio的顯示的名稱,該如何操作?

這個方法的作用就是我們這樣的,可以改變Lib在IDE中的名稱。

接著來看下在setting.gradle怎麼定義全局變數呢?這時候就是利用gradle的拓展屬性的特性了。

然後在build.gradle中使用變數的時候,就還是使用gradle.ext使用即可。

關於ext屬性我們後面專門再講下,我們前面也講到了我們全局就只會有一個gradle對象,所以這里可以理解是一個全局的map對象,這樣就好理解了很多。

至此,本篇博客對於 gradle.properties 、 local.properties 、 setting.gradle 都配置都有了一個較為詳細都講解,我們後面在使用過程中,對於這三個文件的配置都不會那麼陌生,並且對於三個文件的差異都有了一個基本都認知,知道我們在定義本地變數,不同人都環境有差異都地方都應該在local.properties配置,大家共同的配置和變數定義可以放到gradle.properties這個專職用於存放配置的文件,最後就是專門用於配置我們項目的目錄結構的setting.gradle,當然這個文件也可以用於配置一些變數,這時候我們就要把我單一職責的原則,也就是高內聚,低耦合那一套,按照文件職責進行劃分,下一篇博客准備對build.gradle的配置進行講解。

⑩ 安裝Gradle,在IDEA中使用Gradle

https://services.gradle.org/distributions/

GRADLE_HOME:野早橡gradle壓縮包解壓後的目錄
GRADLE_USER_HOME:gradle默認的倉庫地址
Path:增加一段 %GRADLE_HOME%/bin

安裝軟體、配置環境變數,可參考
https://blog.csdn.net/qq_22172133/article/details/81513955

new -> project -> gradle -> java -> next -> 輸入groupId、ArtifactId -> next -> next -> finish

打開idea右側的gradle菜單,Tasks/build子菜單下有一組gradle指令,可以使用jar指令打包項目。打包結果輸出在build目錄。
如上圖。

idea會不支持睜仿高版本的gradle。比如我的idea是2018.3的版本,可以使用5.6.2版本的gradle,但是使用6.x.x版本的grade就不行。
我在網上也沒有找到一份具體的idea支持的gradle版本對應表。大家如果發現自己的idea使用gradle報錯,可以試試降頌旁一下gradle的版本,修改gradle/wrapper/gradle-wrapper.properties。

5.6.2版本的gradle,可以build成功

6.6.1版本build失敗