搜尋
首頁Javajava教程使用nexus搭建區域網路私服

使用nexus搭建區域網路私服

Jul 23, 2017 pm 03:00 PM
maven區域網路私服

使用nexus搭建區域網路私服

一. 認識maven倉庫

1.1 maven倉庫的作用

  回想之前不用maven的時候,我們用eclipse原始的專案骨架在建置專案時,在工程目錄下往往有一個lib資料夾用來存放工程所需jar文件,每次建造一個新工程時都會有這樣一個lib資料夾。然後將jar複製進lib資料夾配置路徑,很顯然有大量的重複工作,而且不同專案所用jar包不盡相同,需要我們慢慢去分辨。而後我們用了專案管理工具例如svn或是git,我們需要把大量的jar檔案引入程式碼庫,這也不是一件很適合的事。
  而maven能夠幫我們解決這些問題,maven倉庫是專門用來存放jar檔案的位置(也可以用來存放項目war,zip,pom等文件)。 maven倉庫中為每個jar檔案分配了一個座標,例如jstl的jar套件:

<groupid>javax.servlet</groupid>        组ID
<artifactid>jstl</artifactid>           构建ID
...  其余属性后续介绍

這樣做的話,maven能很方便的進行專案依賴版本的控制。簡單說maven倉庫就是幫我們統一管理專案構件。

1.2 maven倉庫分類

使用nexus搭建區域網路私服
  專案建置的查詢路徑:先查詢本地倉庫,找不到就會查詢中央倉庫,沒找到就會報錯。中央倉庫位址有:

  1. 私服nexus用

  2. #推薦使用

  3. ##上面三個是較為常見的,也是專案中使用較多的,但是由於下載速度太慢,且倉庫的jar檔案不完整,實際企業開發需要我們搭建私服倉庫。

    二. 安裝使用nexus

      這裡注意搭建maven私服不只這一種工具。博主用的版本是nexus-2.12.0。


  4. 點擊下載,密碼:1ar1

  5. 下載完成後解壓縮即可,解壓縮完成到目錄nexus-2.12.0-01-bundle\nexus-2.12.0-01\bin\jsw下可以看到:

    使用nexus搭建區域網路私服

  6. #部落客電腦是64位元所以開啟最後一個資料夾:


    使用nexus搭建區域網路私服

  7. # 點選第二個bat檔設定為windows服務,開啟nexus後造訪網址: http: //localhost:8081/nexus/啟動後開啟如下頁面,即代表nexus安裝並啟動成功。

    使用nexus搭建區域網路私服

    三. 設定maven私服

  8. #點選右上角Login登陸,初始帳號為admin,密碼是admin123 登陸成功可修改帳號密碼,自己找。

  9. 點擊左邊的導覽Respositories
    使用nexus搭建區域網路私服

可以看到預設有一些倉庫,倉庫類型Type的意義:

  • hosted 宿主倉庫,用來發布一些第三方不允許的元件,例如oracle驅動程式等商業軟體的jar包

  • proxy 代理遠端的倉庫,例如上面寫得三個maven遠端倉庫。如果本機不存在某些jar檔時就會到這些代理站點去下載。

  • releases 內部的模組中release模組的發佈倉庫

  • snapshots 發佈內部的snapshot模組的倉庫

  • #3rd party 第三方依賴的倉庫,本地上傳jar套件後使用

  • group 群組倉庫,用來新增其他的倉庫,方便開發人員設定

開始搭建私服倉庫,值得注意的是:maven專案索引:maven專案索引就是用來方便在私服網站尋找相關依賴建置的功能。所以在搭建私服之前,應該下載maven索引,大概幾十M:


使用nexus搭建區域網路私服

將Download Remote Indexs屬性改成True,然後點擊save即可,可以在選單列Scheduled Tasks查看下載索引的進度。

3.
新增自己代理程式的遠端庫,有時候我們的專案需要引進一些特殊的jar文件,例如Jboss的某些jar包,這時候也可以在私服中代理該遠端倉庫:
使用nexus搭建區域網路私服

點擊add後加入代理類型,依序填寫id,name和url,這樣的話,在專案中

不再需要設定遠端倉庫:

<repository>
    <id>jboss</id>
    <name>JBoss Repository</name>
    <url>;/url>
    <releases>
        <updatepolicy>daily</updatepolicy><!-- never,always,interval n -->
        <enabled>true</enabled>
        <checksumpolicy>warn</checksumpolicy><!-- fail,ignore -->
    </releases>
    <snapshots>
        <enabled>false</enabled>
    </snapshots>
    <layout>default</layout>
</url></repository>

4.使用nexus搭建區域網路私服的使用,上面提到的一些特殊的商业性质相关的jar文件,比如oracle的驱动包,ojdbc.jar并不支持远程下载,这时候可以将我们本地下载好的jar包上传到私服。
使用nexus搭建區域網路私服

注意GAV设置要与你pom.xml中一致,上传后添加到Artifacts点击上传即可:
使用nexus搭建區域網路私服2
5.由于私服仓库数量过多,导致配置复杂度提高,所以需要用到上述的group类型仓库:
使用nexus搭建區域網路私服

切记点击刷新,刷新后点击唯一的一个group仓库,点击配置Configuration就可以看到刚才我们手动添加的代理仓库,然后将代理仓库添加到组仓库,这样依赖,项目中之需要配置组仓库的url就可以访问多个私服仓库。

四. 局域网使用maven私服

4.1 单个项目使用maven私服

在上述步骤完成后,即可在项目中引用私服,pom.xml中改变默认下载仓库url:
指定私服仓库,我的ip是170,不要全盘复制

<repositories>  
    <repository>  
        <id>nexus</id>  
        <name>nexus</name>  
        <url>http://192.168.1.170:8081/nexus/content/groups/public/</url>  
        <releases>  
            <enabled>true</enabled>  
        </releases>  
        <snapshots>  
            <enabled>true</enabled>  
        </snapshots>  
    </repository>  
</repositories>

指定插件仓库

<pluginrepositories>  
    <pluginrepository>  
        <id>nexus</id>  
        <name>nexus</name>  
        <url>http://192.168.1.170:8081/nexus/content/groups/public/</url>  
        <releases>  
            <enabled>true</enabled>  
        </releases>  
        <snapshots>  
            <enabled>true</enabled>  
        </snapshots>  
    </pluginrepository>  
</pluginrepositories>

配置好之后就可以从私服下载依赖包了。但是这种方式只能在改项目中起作用,每次配置项目都需要写两遍,为了将懒人模式进行到底,我们还可以指定全局的私有仓库。

4.2 全局指定私服

找到maven文件的中的使用nexus搭建區域網路私服文件
使用nexus搭建區域網路私服

在使用nexus搭建區域網路私服中添加配置:
在profiles>标签下添加

<profile>
    <repositories>
        <id>central</id>
        <name>central</name>
        <url>http://192.168.1.170:8081/nexus/content/groups/public/</url>
        <layout>default</layout>
        <releases>
            <enabled>true<enabled>
        </enabled></enabled></releases>
        <snapshots>
            <enabled>true<enabled>
        </enabled></enabled></snapshots>
    </repositories>
</profile>

配置好之后激活profile

<activeprofiles>  
    <activeprofile>central</activeprofile>  
</activeprofiles>

这样一来,这台电脑上所有maven项目下载jar文件时都会先访问局域网170的电脑。

-----------------------------------windows配置私服完毕-----------------------------------

扩展:setting,xml中各标签的意义

  1. servers(服务器)

<servers>
    <server>
        <id>server001</id>
        <username>my_login</username>
        <password>my_password</password>
        <privatekey>${usr.home}/.ssh/id_dsa</privatekey>
        <passphrase>some_passphrase</passphrase>
        <filepermissions>664</filepermissions>
        <directorypermissions>775</directorypermissions>
        <configuration></configuration>
    </server>
</servers>

id与pom.xml中distributionManagement的id保持一致,服务器标识
username和password表示服务器认证需要的用户民和密码
privateKey, passphrase一组密钥 (不常用)
filePermissions, directoryPermissions如果在部署的时候会创建一个仓库文件或者目录,这时候就可以使用权限(不常用)

2.mirrors(镜像)

<mirrors>
    <mirror>
        <id>planetmirror.com</id>
        <name>PlanetMirror Australia</name>
        <url>;/url>
        <mirrorof>central</mirrorof>
    </url></mirror>
</mirrors>

设置一个中央仓库的镜像,看仓库分类,也是远程仓库的一种配置方式。

3.profiles(构建环境)
这个可能比较难理解,maven权威指南一书中这样说:

  Profile能让你为一个特殊的环境自定义一个特殊的构建;
  构建环境的两个例子是产品环境和开发环境。当你在开发环境中工作时,你的系统可能被配置成访问运行在你本机的开发数据库实例,而在产品环境中,你的系统被配置成从产品数据库读取数据。Maven能让你定义任意数量的构建环境(构建profile),这些定义可以覆盖pom.xml中的任何配置。

简单理解就是你可以先profile中先构件好项目运行的环境,比如预设了A环境实在开发中使用,而实际上线是B环境,那么在上线的时候我们不需要一个个修改pom.xml中的配置,只需要激活改profile即可。

4.activation(激活构建环境 )

<activation>
    <activebydefault>false</activebydefault>
    <jdk>1.5</jdk>
    <os>
        <name>Windows XP</name>
        <family>Windows</family>
        <arch>x86</arch>
        <version>5.1.2600</version>
    </os>
    <property>
        <name>mavenVersion</name>
        <value>2.0.3</value>
    </property>
</activation>

指定profile中配置的环境在什么时候开始生效

5.activeProfiles(激活了的profile)

<activeprofiles>
<activeprofile>env-test</activeprofile>
</activeprofiles>

在使用nexus搭建區域網路私服最后的一个标签,表示env-test这个profile已被激活

以上是使用nexus搭建區域網路私服的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
說明JVM如何充當Java代碼和基礎操作系統之間的中介。說明JVM如何充當Java代碼和基礎操作系統之間的中介。Apr 29, 2025 am 12:23 AM

JVM的工作原理是將Java代碼轉換為機器碼並管理資源。 1)類加載:加載.class文件到內存。 2)運行時數據區:管理內存區域。 3)執行引擎:解釋或編譯執行字節碼。 4)本地方法接口:通過JNI與操作系統交互。

解釋Java虛擬機(JVM)在Java平台獨立性中的作用。解釋Java虛擬機(JVM)在Java平台獨立性中的作用。Apr 29, 2025 am 12:21 AM

JVM使Java實現跨平台運行。 1)JVM加載、驗證和執行字節碼。 2)JVM的工作包括類加載、字節碼驗證、解釋執行和內存管理。 3)JVM支持高級功能如動態類加載和反射。

您將採取哪些步驟來確保Java應用程序在不同的操作系統上正確運行?您將採取哪些步驟來確保Java應用程序在不同的操作系統上正確運行?Apr 29, 2025 am 12:11 AM

Java應用可通過以下步驟在不同操作系統上運行:1)使用File或Paths類處理文件路徑;2)通過System.getenv()設置和獲取環境變量;3)利用Maven或Gradle管理依賴並測試。 Java的跨平台能力依賴於JVM的抽象層,但仍需手動處理某些操作系統特定的功能。

Java是否需要特定於平台的配置或調整區域?Java是否需要特定於平台的配置或調整區域?Apr 29, 2025 am 12:11 AM

Java在不同平台上需要進行特定配置和調優。 1)調整JVM參數,如-Xms和-Xmx設置堆大小。 2)選擇合適的垃圾回收策略,如ParallelGC或G1GC。 3)配置Native庫以適應不同平台,這些措施能讓Java應用在各種環境中發揮最佳性能。

哪些工具或庫可以幫助您解決Java開發中特定於平台的挑戰?哪些工具或庫可以幫助您解決Java開發中特定於平台的挑戰?Apr 29, 2025 am 12:01 AM

Osgi,Apachecommonslang,JNA和JvMoptionsareeForhandlingForhandlingPlatform-specificchallengesinjava.1)osgimanagesdeppedendendencenciesandisolatescomponents.2)apachecommonslangprovidesitorityfunctions.3)

JVM如何在不同平台上管理垃圾收集?JVM如何在不同平台上管理垃圾收集?Apr 28, 2025 am 12:23 AM

JVMmanagesgarbagecollectionacrossplatformseffectivelybyusingagenerationalapproachandadaptingtoOSandhardwaredifferences.ItemploysvariouscollectorslikeSerial,Parallel,CMS,andG1,eachsuitedfordifferentscenarios.Performancecanbetunedwithflagslike-XX:NewRa

為什麼Java代碼可以在不同的操作系統上運行,而無需修改?為什麼Java代碼可以在不同的操作系統上運行,而無需修改?Apr 28, 2025 am 12:14 AM

Java代碼可以在不同操作系統上無需修改即可運行,這是因為Java的“一次編寫,到處運行”哲學,由Java虛擬機(JVM)實現。 JVM作為編譯後的Java字節碼與操作系統之間的中介,將字節碼翻譯成特定機器指令,確保程序在任何安裝了JVM的平台上都能獨立運行。

描述編譯和執行Java程序的過程,突出平台獨立性。描述編譯和執行Java程序的過程,突出平台獨立性。Apr 28, 2025 am 12:08 AM

Java程序的編譯和執行通過字節碼和JVM實現平台獨立性。 1)編寫Java源碼並編譯成字節碼。 2)使用JVM在任何平台上執行字節碼,確保代碼的跨平台運行。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。