Nexus3:使用

来自Wikioe
Eijux讨论 | 贡献2021年12月19日 (日) 20:11的版本 →‎使用
跳到导航 跳到搜索



关于

初始使用

第一次使用 Nexus 3 需要进行一点配置,才能更好地使用它:

  1. 添加存储位置配置:
    Nexus3:添加存储位置(Blob Stores).png
  2. 添加仓库:
    Nexus3:添加仓库(Repositories).png
    1. 添加代理(proxy)仓库;
      • (应添加“Mavne - Publish Maven Indexer files”类型的任务,以更新其索引)
    2. 添加宿主(hosted)仓库;
      • (应设置其为“Allowed redeploy”)
    3. 添加仓库组(group);
      • (应为其添加不同的仓库成员才能使用,仓库成员必须注意顺序!)

代理仓库:添加任务更新远程索引

代理仓库状态:

Nexus3:代理仓库状态.png
  1. “Online - Remote Available”:可用;
  2. “Online - Ready to Connect”:不可用;


如图:

Nexus3:添加任务:更新代理仓库的远程索引.png
如此,更新远程索引之后,才能确保代理仓库的状态可用。

宿主仓库:设置可重复上传

如图:

仓库组:添加仓库成员

如图:


其他

在 Maven 中使用 Nexus

  1. Maven 配置文件示例:
    <?xml version="1.0" encoding="UTF-8"?>
    
    <settings xmlns="http://maven.apache.org/SETTINGS/1.2.0"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.2.0 https://maven.apache.org/xsd/settings-1.2.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>
    	-->
    	<localRepository>D:\Documents\Repository</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>
    		<!-- pluginGroup
    		 | Specifies a further group identifier to use for plugin lookup.
    		<pluginGroup>com.your.plugins</pluginGroup>
    		-->
    	</pluginGroups>
    
    	<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>
    		<server>
    		  <id>maven-public</id>
    		  <username>admin</username>
    		  <password>@eijux</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>
    		<mirror>
    			<id>nexus3</id>
    			<name>nexus3</name>
    			<mirrorOf>*</mirrorOf>
    			<url>http://localhost:8080/repository/maven-public/</url>
    		</mirror>
    	</mirrors>
    
    	<profiles>
    		<profile>
    			<id>dev</id>
    			
    			<repositories>
    				<repository>
    					<id>maven-public</id>
    					<name>maven-public</name>
    					<url>http://localhost:8080/repository/maven-public/</url>
    					<releases>
    						<enabled>true</enabled>
    					</releases>
    					<snapshots>
    						<enabled>true</enabled>
    					</snapshots>
    				</repository>
    			</repositories>
    			
    			<pluginRepositories>
    				<pluginRepository>
    					<id>maven-public</id>
    					<name>maven-public</name>
    					<url>http://localhost:8080/repository/maven-public/</url>
    					<releases>
    						<enabled>true</enabled>
    					</releases>
    					<snapshots>
    						<enabled>true</enabled>
    					</snapshots>
    				</pluginRepository>
    			</pluginRepositories>
    		</profile>
    	</profiles>
    
    	<activeProfiles>
    		<activeProfile>dev</activeProfile>
    	</activeProfiles>
    </settings>
    
  2. 在 IDEA 中更新 Maven 仓库索引:(先确保 Nexus 3 的仓库状态为“Online - Remote Available”)
    IDEA:更新maven仓库索引.png

在项目中使用 Nexus 查找依赖包

部署编译完成的 jar 到 Nexus 仓库