Maven私服搭建及自定義Archetype(骨架)

搭建MAVEN私服

爲什麼要用私服

通過私服MAVEN能夠更有效的管理自己的依賴包,像阿里雲的短信jar包等第三方的依賴包,很多公服是沒有的,在比如MAVEN是不支持多個倉庫下載的,但是可以配置多個倉庫。在私服上就可以解決以上問題。

怎麼搭建?

我們使用Nexus來搭建我們的私有倉庫。

Nexus

下載

windows的用戶可以通過我上傳的資源下載:
https://download.csdn.net/download/qq_31403321/11457242

官網下載地址:https://www.sonatype.com/nexus-repository-oss
官網速度比較慢,windows用戶可以通過我上傳的資源進行下載。

安裝

全部解壓,注意要保證2個文件夾始終在同一層目錄上。

配置

默認的端口號8081,可以在nexus-3.18.0-01\etc\nexus-default.properties文件中修改

端口號
application-port=8081
host
application-host=0.0.0.0

運行

下面爲windows運行步驟,其他平臺可以參考

  1. 進入nexus-3.18.0-01\bin目錄下,你的後面版本可能和我的不一樣
  2. 通過命令窗口執行以下命令nexus.exe/run
  3. 當看到state change RUNNING -> WAITING (OK)這種提示就代表啓動成功了。

運行成功後可以在瀏覽器上輸入http://127.0.0.1:8081即可看到效果。

第一次啓動,請根據嚮導一步步來,裏面會告知密碼在哪個文件中。

添加第三方倉庫

進入後 登錄賬號:admin密碼:你自己設置的密碼

我們以阿里云爲例,點擊設置,選擇Repositories,進入後創建倉庫。
在這裏插入圖片描述
在這裏插入圖片描述
創建類型選擇maven2(proxy)
在這裏插入圖片描述
阿里雲倉庫地址:http://maven.aliyun.com/nexus/content/groups/public/
在這裏插入圖片描述

然後回到主界面點擊maven-public倉庫,這個倉庫就是我們在項目需要使用到的中央倉庫了。

把你添加的倉庫移到右邊,就可以了。別忘記點擊保存
在這裏插入圖片描述

添加本地倉庫

倉庫類型:

  • maven2(group) 倉庫組,集成多個倉庫,參考我們私服的中央倉庫
  • maven2(proxy) 代理倉庫,就是我們剛剛添加阿里雲的倉庫類型。
  • maven2(hosted) 本地倉庫,也就是我們把自己的依賴包上傳的倉庫。

在上面的步驟下,我們選擇maven2(hosted),除了名字必填,還有一項值得注意。
在這裏插入圖片描述
如果選擇Release,那麼上傳的依賴包版本必須爲Release

注意

別忘了,把我們創建的倉庫,添加到中央倉庫中去哦。

MAVEN配置

settings文件配置

在 Maven 中settings.xml文件,找到servers標籤。在該標籤中添加一下配置
在這裏插入圖片描述

   <server>
      <id>SNAPSHOT</id>
      <username>admin</username>
      <password>你的密碼</password>
    </server>
	<server>
      <id>Releases</id>
      <username>admin</username>
      <password>你的密碼</password>
    </server>

項目pom文件配置

在項目中pom.xml文件下,添加以下節點:
repository>id,要和上面的id一致,否則會上傳失敗


 <!--使用指定倉庫-->
  <repositories>
    <repository>
      <id>nexus</id>
      <url>http://localhost:8081/repository/maven-public/</url>
    </repository>
  </repositories>


    <!--上傳的倉庫地址-->
  <distributionManagement>
    <repository>
      <id>Releases</id>
      <name>Releases</name>
      <url>http://localhost:8081/repository/3rd_part/</url>
    </repository>
    <snapshotRepository>
      <id>SNAPSHOT</id>
      <name>SNAPSHOT</name>
      <url>http://localhost:8081/repository/loc_SNAPSHOT/</url>
    </snapshotRepository>
  </distributionManagement>

上傳

  1. 單模塊
    在當前項目路徑下,執行mvn deploy
  2. 多模塊
    在父模塊目錄下,執行mvn deploy

自定義項目骨架

什麼是archeType

在我們使用IDEA創建項目的時候,可以快速創建基本的模板,而這些模板就是使用archeType生成的。

在這裏插入圖片描述

創建archetype

假如我們有個Maven項目,他的項目結構和我們以往的都差不多,那麼爲了下次直接能夠生產該項目結構,則可以把該項目創建一個archetype,方便我們下次自動生成。

我們可以通過2中方法來創建模板。

手動創建

1.創建MAVEN項目

修改項目中的pom.xml文件:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
 
  <groupId>my.groupId</groupId>
  <artifactId>my-archetype-id</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>maven-archetype</packaging>
 
  <build>
    <extensions>
      <extension>
        <groupId>org.apache.maven.archetype</groupId>
        <artifactId>archetype-packaging</artifactId>
        <version>3.1.1</version>
      </extension>
    </extensions>
  </build>
</project>

2.創建archetype描述

這一步主要就是用來生成的代碼。首先確保創建好了resources文件夾

src/main/resources/META-INF/maven/路徑下,創建以下文件

文件名不能修改
archetype-metadata.xml

<archetype-descriptor
        xsi:schemaLocation="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0
        http://maven.apache.org/xsd/archetype-descriptor-1.0.0.xsd"
        xmlns="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        name="my-archetype-id">
    <fileSets>
        <fileSet filtered="true" packaged="true">
            <directory>src/main/java</directory>
        </fileSet>
        <fileSet>
            <directory>src/test/java</directory>
        </fileSet>
    </fileSets>
</archetype-descriptor>

這裏的name="quickstart中的quickstart要對應項目中的artifactId

3.創建文件模板

resources/archetype-resources中,需要先添加pom.xml文件。

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>${groupId}</groupId>
    <artifactId>${artifactId}</artifactId>
    <version>${version}</version>
    <packaging>jar</packaging>

    <name>${artifactId}</name>
    <url>http://www.myorganization.org</url>

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
</project>

隨後可以在需要地方創建java代碼。

總的項目結構如下圖:
在這裏插入圖片描述

4.生成archetype

在項目路徑下輸入命令: mvn install 完成生成即可。

插件創建(推薦)

使用插件的方式創建是簡單也是最快速的一種方式。

  1. 創建項目,或者使用以前的項目
  2. 進入到該項目中,輸入命令mvn archetype:create-from-project
  3. 命令執行完後,進入到target/generated-sources/archetype文件夾中
  4. 在該文件中,執行命令mvn install

這種插件的方式非常讓人省心,等待生成好後,即可以使用了

使用自定義archetype

命令:mvn archetype:generate -DarchetypeCatalog=local

意思是生成項目,從本地獲取到模板
在這裏插入圖片描述
回車以後,會看到本地的模板列表,輸入要用的模板即可。

參考文獻

http://maven.apache.org/guides/mini/guide-creating-archetypes.html
http://maven.apache.org/archetype/maven-archetype-plugin/advanced-usage.html

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