1. 程式人生 > >使用Maven下載依賴包及使用Nexus搭建私服

使用Maven下載依賴包及使用Nexus搭建私服

不存在 packaging policy jpg .com 庫類 rep oca 解壓

在項目的搭建過程中,所以很多時候我們需要上網去一個一個找項目的依賴包。這個過程確實是一個效率很低而且很讓人惱火的事情。
很多時候能找到對應的官網下載固然是好,但是大部分時候我們都只能在一些第三方網站上下載未知的版本。
所以我們需要一個Maven

Maven使用

Maven核心自帶的遠程倉庫,包括了絕大部分開源構件。我們可以很方便通過Maven提供的坐標機制便捷的下載到你心儀的依賴包。

Maven下載、安裝

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

配置環境變量 系統變量: path: %MAVEN_HOME%\bin; MAVEN_HOME G:\maven\apache-maven-3.3.9-bin\apache-maven-3.3.9

到bin文件夾

cmd:mvn -version 查看安裝是否成功

配置中央倉庫:解壓安裝路徑下 apache-maven-3.3.9\lib maven-model-builder-3.3.9.jar

m2eclipse下載、安裝

這裏我已經默認了你安裝了JDK 並且安裝了eclipse

m2eclipse下載是eclipse下一款Maven插件

打開eclipse: help --> Install New SoftWare --> add ?

 `Name`:m2e  
 `Location`: *http://m2eclipse.sonatype.org/sites/m2e*

如果一直停留pending可以將Contact all update sites during install to find required software 取消勾選

新建一個Maven項目

eclipse:new --> Maven --> MavenProject 

Tips:可能會卡住,因為Maven會生成項目骨架,天朝的網絡下載是硬傷。Properties參數archetypeCatalog=internal

添加要下載的地址

這裏以Spring為例:

  • 你可以在官網download處找到

        <dependencies>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context</artifactId>
                <version>4.3.2.RELEASE</version>
            </dependency>
        </dependencies>
  • 你也可以使用倉庫搜索網站:

1.1 Sonatype Nexus

http://repository.sonatype.org/

2.2 Jarvana

https://www.jarvana.com/ jarvana/

3.3 MVNbrowser

http://www.mvnbrowser.com

4.4 MVNrepository

http://mvnrepository.com

然後將pom.xml中的對應部分替換掉稍加等待,你就可以在項目中看到你需要的依賴包。


技術分享圖片

下載路徑更換

本地倉庫默認路徑:C:\Users\UserName.m2\repository

修改本地倉庫的路徑:apache-maven-3.3.9\conf\settings.xml

如:


    <localRepository>G:/maven/repository</localRepository>

下載Tips

下載json-lib


<!-- https://mvnrepository.com/artifact/net.sf.json-lib/json-lib -->
<dependency>
    <groupId>net.sf.json-lib</groupId>
    <artifactId>json-lib</artifactId>
    <version>2.2.2</version>
</dependency>

無法下載 要改成


<!-- https://mvnrepository.com/artifact/net.sf.json-lib/json-lib -->
<dependency>
            <groupId>net.sf.json-lib</groupId>
            <artifactId>json-lib</artifactId>
            <version>2.2.2</version>
            <classifier>jdk15</classifier>
</dependency>

Maven 學習

自定義Jar

maven項目:編寫主代碼

默認主代碼目錄:src/main/java
運行主代碼:根目錄


    //clean:清理輸出目錄target/
    //compile:將主代碼編譯到target/classes
    $ mvn clean compile
    

maven項目:編寫測試代碼

默認測試代碼目錄:src/test/java
運行測試代碼:

    $ mvn clean compile
  

打包和運行

maven會在打包之前執行編譯、測試等操作。

打包和運行:

  $ mvn clean install

maven 坐標

maven 的一大功能是管理項目依賴,為了能自動化的解析任意一個Java構件(每個jar包可以當做一個構件)。maven使用坐標將它們唯一標示,每個構件都有一組坐標。
坐標的定義是根據元素:groupIdartifactIdversionpackagingclassifier

  • groupId:Maven項目隸屬的實際項目
  • artifactId:實際項目中的一個Maven項目
  • version:該Maven當前所在的版本
  • packaging:Maven項目的打包方式
  • classifier:構件輸出的一些附屬構件

坐標和路徑大致的對應為:
groupId/ artifactId/ version/ artifactId-version.packaging

maven 倉庫

maven倉庫可以分為兩類:本地倉庫遠程倉庫

遠程倉庫也可以分為中央倉庫私服其他公共庫
中央倉庫是Maven核心自帶的遠程倉庫,包括了絕大部分開源構件。
私服是一種特殊的遠程倉庫,為了節省帶寬和時間在局域網架設一個私有的倉庫服務器,代理所有的遠程倉庫,內部的項目也可以部署到私服上供其他項目使用。

依賴下載機制

當maven需要構件的時候,會先查看本地倉庫,如果有直接使用。如果不存在會查看是否有最新版本的。如果還不存在則會去遠程倉庫下載需要的構件。

私服的部署

私服是一種特殊的遠程倉庫,它是架設在局域網上的倉庫服務,私服代理廣域網上的遠程倉庫。私服一大作用就是可以部署第三方構件,供團隊人員交流和使用。

Nexus搭建私服

Nexus下載、安裝

下載地址:https://nexus.sonatype.org/downloads/

安裝完成了訪問:http://localhost:8081/nexus 即可看到首頁。

修改監聽端口和ip

在安裝目錄下:Nexus\nexus-pro-trial-installer-2.13.0-01\conf\nexus.properties

application-port : nexus的監聽端口

application-host : nexus的監聽ip地址,如果使用nginx或apache等其他http代理,可將該ip地址修改為localhost127.0.01,增強安全性.

登錄

默認賬號:admin

密碼:admin123

倉庫屬性

倉庫類型(type)

  • grounp(倉庫組)
  • hosted(宿主)
  • peoxy(代理)
  • virtual(虛擬)

倉庫策略(Policy):

  • Release(發布版本)
  • Snapshot(快照版本)

配置Maven從Nexus下載構件

 
<project>
...
<properties>
     <repository>
         <id>nexus</id>
         <name>Nexus</name>
         <url>http://localhost:8081/nexus/content/groups/public/</url>
         <releases><enabled>true</enabled></releases>
         <snapshots><enabled>true</enabled></snapshots>        
     </repository>  
</properties>
<pluginRepositories>
   <pluginRepository>
         <id>nexus</id>
         <name>Nexus</name>
         <url>http://localhost:8081/nexus/content/groups/public/</url>
         <releases><enabled>true</enabled></releases>
         <snapshots><enabled>true</enabled></snapshots>        
   </pluginRepository>
</pluginRepositories>
...
</project>

使用Maven下載依賴包及使用Nexus搭建私服