配置遠程maven倉庫自己的步驟


---恢復內容開始---

1、首先在遠程服務器配置jdk、maven環境,這個可以在網上找

2、Nexus 安裝與配置。這個見網上博客(https://blog.csdn.net/lewis_007/article/details/53582537,內容搬走了,望博主見諒)

============================================================

 

 

這里介紹下 SonaType Nexus 2.x 的安裝(Windows 環境)和配置。

安裝

下載

進入Nexus 官網下載頁面:https://www.sonatype.com/download-oss-sonatype ,找到 Nexus Repository Manager OSS 2.x 字樣,點擊 nexus-2.14.1-01-bundle.zip 鏈接下載。 
Nexus 官網下載頁面

解壓

解壓 nexus-2.14.1-01-bundle.zip 到任意路徑,例如 D:\Apps\DevApps\snaptype-nexus\ ,為行文方便,下文用 %NEXUS_HOME% 代指該路徑。 
Nexus 安裝路徑

安裝

進入 %NEXUS_HOME%\nexus-2.14.1-01\bin\jsw\ 目錄,這里是一系列以操作系統類型命名的文件夾,各文件夾下存放的是對應的 Nexus 腳本(Nexus 是這么設計目錄的,但是,當前 Nexus 只提供了 Windows 的腳本)。 
Nexus 服務目錄

我這里進入 windows-x86-64 文件夾,以管理員身份運行 install-nexus.bat (安裝windows服務,讓服務自動重啟) 和 start-nexus.bat (運行nexus)。 

 

修改端口在這個路徑下:C:\nexus-2.14.5-02-bundle\nexus-2.14.5-02\conf   nexus 文件中,默認端口為8081 ,我改為8088端口了。


Windows 服務

訪問

進入 http://localhost:8081/nexus 訪問 Nexus 。 
首頁

成功打開上述頁面,表示安裝完成。接下來還需要配置,不配置,就長這樣。 
查詢

配置 Nexus

登錄

在首頁,通過賬號 admin/admin123 登錄。 
登錄

下載遠程索引

進入名為 Central 的資源庫,在其配置頁面,將遠程下載索引調整為 true 。 
下載遠程索引

這時,進入任務調度頁面,可以看到一個修復資源庫索引的任務正在運行。這個任務是由於資源庫的配置變更自動觸發的,執行一次,執行完會自動刪除,作用是將 Maven 中央倉庫的索引(目前,大概 2.6 G ,並且還在增加)下載到私服,一般要執行 1-2 小時,具體執行時長依賴實際網絡環境。 
任務調度

查詢

在配置前,我們做了查詢,現在我們再次執行查詢,看看查詢的結果。 
查詢

配置 Maven

為了在本地項目中使用到 Nexus 私服,需要為本地 Maven 進行相應配置。

(這里有個問題,都是本地局域網,我不需要修改settings.xml文件內容,修改了結果有問題,添加dependency無法導入包,默認內容如下:

 

 

 

<?xml version="1.0" encoding="UTF-8"?>

<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
-->

<!--
 | This is the configuration file for Maven. It can be specified at two levels:
 |
 |  1. User Level. This settings.xml file provides configuration for a single user,
 |                 and is normally provided in ${user.home}/.m2/settings.xml.
 |
 |                 NOTE: This location can be overridden with the CLI option:
 |
 |                 -s /path/to/user/settings.xml
 |
 |  2. Global Level. This settings.xml file provides configuration for all Maven
 |                 users on a machine (assuming they're all using the same Maven
 |                 installation). It's normally provided in
 |                 ${maven.home}/conf/settings.xml.
 |
 |                 NOTE: This location can be overridden with the CLI option:
 |
 |                 -gs /path/to/global/settings.xml
 |
 | The sections in this sample file are intended to give you a running start at
 | getting the most out of your Maven installation. Where appropriate, the default
 | values (values used when the setting is not specified) are provided.
 |
 |-->
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
  <!-- localRepository
   | The path to the local repository maven will use to store artifacts.
   |
   | Default: ${user.home}/.m2/repository
  <localRepository>/path/to/local/repo</localRepository>
  -->

  <!-- interactiveMode
   | This will determine whether maven prompts you when it needs input. If set to false,
   | maven will use a sensible default value, perhaps based on some other setting, for
   | the parameter in question.
   |
   | Default: true
  <interactiveMode>true</interactiveMode>
  -->

  <!-- offline
   | Determines whether maven should attempt to connect to the network when executing a build.
   | This will have an effect on artifact downloads, artifact deployment, and others.
   |
   | Default: false
  <offline>false</offline>
  -->

  <!-- pluginGroups
   | This is a list of additional group identifiers that will be searched when resolving plugins by their prefix, i.e.
   | when invoking a command line like "mvn prefix:goal". Maven will automatically add the group identifiers
   | "org.apache.maven.plugins" and "org.codehaus.mojo" if these are not already contained in the list.
   |-->
  <pluginGroups>
    <!-- pluginGroup
     | Specifies a further group identifier to use for plugin lookup.
    <pluginGroup>com.your.plugins</pluginGroup>
    -->
  </pluginGroups>

  <!-- proxies
   | This is a list of proxies which can be used on this machine to connect to the network.
   | Unless otherwise specified (by system property or command-line switch), the first proxy
   | specification in this list marked as active will be used.
   |-->
  <proxies>
    <!-- proxy
     | Specification for one proxy, to be used in connecting to the network.
     |
    <proxy>
      <id>optional</id>
      <active>true</active>
      <protocol>http</protocol>
      <username>proxyuser</username>
      <password>proxypass</password>
      <host>proxy.host.net</host>
      <port>80</port>
      <nonProxyHosts>local.net|some.host.com</nonProxyHosts>
    </proxy>
    -->
  </proxies>

  <!-- servers
   | This is a list of authentication profiles, keyed by the server-id used within the system.
   | Authentication profiles can be used whenever maven must make a connection to a remote server.
   |-->
  <servers>
    <!-- server
     | Specifies the authentication information to use when connecting to a particular server, identified by
     | a unique name within the system (referred to by the 'id' attribute below).
     |
     | NOTE: You should either specify username/password OR privateKey/passphrase, since these pairings are
     |       used together.
     |
    <server>
      <id>deploymentRepo</id>
      <username>repouser</username>
      <password>repopwd</password>
    </server>
    -->

    <!-- Another sample, using keys to authenticate.
    <server>
      <id>siteServer</id>
      <privateKey>/path/to/private/key</privateKey>
      <passphrase>optional; leave empty if not used.</passphrase>
    </server>
    -->
  </servers>

  <!-- mirrors
   | This is a list of mirrors to be used in downloading artifacts from remote repositories.
   |
   | It works like this: a POM may declare a repository to use in resolving certain artifacts.
   | However, this repository may have problems with heavy traffic at times, so people have mirrored
   | it to several places.
   |
   | That repository definition will have a unique id, so we can create a mirror reference for that
   | repository, to be used as an alternate download site. The mirror site will be the preferred
   | server for that repository.
   |-->
  <mirrors>
    <!-- mirror
     | Specifies a repository mirror site to use instead of a given repository. The repository that
     | this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
     | for inheritance and direct lookup purposes, and must be unique across the set of mirrors.
     |
    <mirror>
      <id>mirrorId</id>
      <mirrorOf>repositoryId</mirrorOf>
      <name>Human Readable Name for this Mirror.</name>
      <url>http://my.repository.com/repo/path</url>
    </mirror>
     -->
  </mirrors>

  <!-- profiles
   | This is a list of profiles which can be activated in a variety of ways, and which can modify
   | the build process. Profiles provided in the settings.xml are intended to provide local machine-
   | specific paths and repository locations which allow the build to work in the local environment.
   |
   | For example, if you have an integration testing plugin - like cactus - that needs to know where
   | your Tomcat instance is installed, you can provide a variable here such that the variable is
   | dereferenced during the build process to configure the cactus plugin.
   |
   | As noted above, profiles can be activated in a variety of ways. One way - the activeProfiles
   | section of this document (settings.xml) - will be discussed later. Another way essentially
   | relies on the detection of a system property, either matching a particular value for the property,
   | or merely testing its existence. Profiles can also be activated by JDK version prefix, where a
   | value of '1.4' might activate a profile when the build is executed on a JDK version of '1.4.2_07'.
   | Finally, the list of active profiles can be specified directly from the command line.
   |
   | NOTE: For profiles defined in the settings.xml, you are restricted to specifying only artifact
   |       repositories, plugin repositories, and free-form properties to be used as configuration
   |       variables for plugins in the POM.
   |
   |-->
  <profiles>
    <!-- profile
     | Specifies a set of introductions to the build process, to be activated using one or more of the
     | mechanisms described above. For inheritance purposes, and to activate profiles via <activatedProfiles/>
     | or the command line, profiles have to have an ID that is unique.
     |
     | An encouraged best practice for profile identification is to use a consistent naming convention
     | for profiles, such as 'env-dev', 'env-test', 'env-production', 'user-jdcasey', 'user-brett', etc.
     | This will make it more intuitive to understand what the set of introduced profiles is attempting
     | to accomplish, particularly when you only have a list of profile id's for debug.
     |
     | This profile example uses the JDK version to trigger activation, and provides a JDK-specific repo.
    <profile>
      <id>jdk-1.4</id>

      <activation>
        <jdk>1.4</jdk>
      </activation>

      <repositories>
        <repository>
          <id>jdk14</id>
          <name>Repository for JDK 1.4 builds</name>
          <url>http://www.myhost.com/maven/jdk14</url>
          <layout>default</layout>
          <snapshotPolicy>always</snapshotPolicy>
        </repository>
      </repositories>
    </profile>
    -->

    <!--
     | Here is another profile, activated by the system property 'target-env' with a value of 'dev',
     | which provides a specific path to the Tomcat instance. To use this, your plugin configuration
     | might hypothetically look like:
     |
     | ...
     | <plugin>
     |   <groupId>org.myco.myplugins</groupId>
     |   <artifactId>myplugin</artifactId>
     |
     |   <configuration>
     |     <tomcatLocation>${tomcatPath}</tomcatLocation>
     |   </configuration>
     | </plugin>
     | ...
     |
     | NOTE: If you just wanted to inject this configuration whenever someone set 'target-env' to
     |       anything, you could just leave off the <value/> inside the activation-property.
     |
    <profile>
      <id>env-dev</id>

      <activation>
        <property>
          <name>target-env</name>
          <value>dev</value>
        </property>
      </activation>

      <properties>
        <tomcatPath>/path/to/tomcat/instance</tomcatPath>
      </properties>
    </profile>
    -->
  </profiles>

  <!-- activeProfiles
   | List of profiles that are active for all builds.
   |
  <activeProfiles>
    <activeProfile>alwaysActiveProfile</activeProfile>
    <activeProfile>anotherAlwaysActiveProfile</activeProfile>
  </activeProfiles>
  -->
</settings>

 

在項目的pom.xml文件添加以下代碼,端口要保持一致

    <repositories>
        <repository>
            <id>nexus</id>
            <name>Team Nexus Repository</name>
            <url>http://192.168.1.161:8088/nexus/content/groups/public</url>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>nexus</id>
            <name>Team Nexus Repository</name>
            <url>http://192.168.1.161:8088/nexus/content/groups/public</url>
        </pluginRepository>
    </pluginRepositories>

  

 

idea中maven配置

 

上圖中的settings.xml就是上面的settings代碼內容

 

 

 

 

用文本編輯器(不要用記事本 notepad)打開 %M2_HOME%\conf\settings.xml 文件,其中 %M2_HOME% 表示本地 Maven 安裝目錄。

在 settings 節點下設置本地倉庫:

<localRepository>E:/work/repo/</localRepository>
  • 1

在 settings - profiles 節點下設置私服地址:

<profile> <id>nexus</id> <repositories> <repository> <id>public</id> <name>Local Public Repository</name> <url>http://localhost:8081/nexus/content/groups/public/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> <updatePolicy>always</updatePolicy> </snapshots> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>public</id> <name>Local Public Repository</name> <url>http://localhost:8081/nexus/content/groups/public/</url> </pluginRepository> </pluginRepositories> </profile>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

在 settings 節點下激活私服地址:

<activeProfiles> <activeProfile>nexus</activeProfile> </activeProfiles>
  • 1
  • 2
  • 3

總結

以上我們做了三件事: 
1. 下載 Nexus ,並將其做成 Windows 服務,便於開機自啟動; 
2. 配置 Nexus ,下載中央倉庫的索引,便於查詢構建; 
3. 配置 Maven ,設置本地倉庫和私服地址,這樣本地的每一個 Maven 項目都可以連接到私服,免去每個項目都要指定私服地址的煩惱。

這里,只是一個開始,也許你在下載本地倉庫的時候 TIME OUT 了,沒有關系,我將在下一篇介紹下 Nexus 的高級配置。

============================================================

 

 

 

3,折騰了兩天,終於配置好了,再次感謝以上博主的內容,有點錯誤,希望更正下。有不懂得哥們可以給我留言,我有空會回復的。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM