maven的setting.xml的配置nexus

[全面讲解maven的setting.xml的配置nexus信息]

转载--(https://www.cnblogs.com/ptcnblog/p/13596576.html)

让maven项目使用nexus作为远程仓库有两种方式,

第一种是在项目的pom.xml中进行更改,让单个项目使用nexus仓库;

另一种是通过修改maven的配置文件settings.xml进行更改,让所有项目都使用nexus仓库。

1.Maven将本地项目发布到Nexus私服

需要再setting文件中配置服务器信息

<server>

<id>nexus-releases</id>

<username>admin</username>

<password>admin123</password>

</server>

<server>

<id>nexus-snapshots</id>

<username>admin</username>

<password>admin123</password>

</server>

</servers>

|

id:这是Server的ID(不是登录进来的user),与Maven想要连接上的repository/mirror中的id元素相匹配。

username,password:这两个元素成对出现,表示连接这个server需要验证username和password。在nexus中,默认管理员用户名为admin,密码为admin123。

这里使用两个服务器配置,分别对应release和snapshot。

2.在pom.xml中配置

``

<distributionManagement>

``

<repository>

``

<id>releases</id>

``

<name>RELEASES PUBLISH</name>

``

<url>http:``//xx.xx.xx.xx:xxxx/repository/maven-releases/</url>

</repository>

``

<snapshotRepository>

``

<id>snapshots</id>

``

<name>SNAPSHOTS PUBLISH</name>

``

<url>http:``//xx.xx.xx.xx:xxxx/repository/maven-snapshots/</url>

</snapshotRepository>

</distributionManagement>

|

3.执行mvn 命令

mvn clean deploy

注意: 项目名称中带有shapshot的会发到快照库,否则则会部署到发行库

2.从nexus拉取依赖

需要再setting文件配置

<profile>

<id>nexusProfile</id>

<repositories>

<repository>

<id>xx</id>

<name>``111``</name>

<url>http:``//localhost:8081/nexus/content/groups/public/</url>

<snapshots>

<enabled>``true``</enabled>

</snapshots>

<releases>

<enabled>``true``</enabled>

</releases>

<layout>``default``</layout>

</repository>

</repositories>

</profile>

<activeProfiles>

``

<activeProfile>nexusProfile</activeProfile>

</activeProfiles>

|

注:激活来才会生效

整体的setting配置,可供参考

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

<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>d:/.m2/repository</localRepository>

``

<interactiveMode>``true``</interactiveMode>

``

<usePluginRegistry>``false``</usePluginRegistry>

``

<offline>``false``</offline>

``

<pluginGroups>

``

<pluginGroup>com.micmiu.plugins</pluginGroup>

</pluginGroups>

<proxies>

``

<proxy>

``

<id>micmiuProxy</id>

``

<active>``true``</active>

``

<protocol>http</protocol>

``

<username>micmiu</username>

``

<password>mypwd</password>

``

<host>micmiu.com</host>

``

<port>``80``</port>

``

<nonProxyHosts>ctosun.com|ctosun.micmiu.com</nonProxyHosts>

</proxy>

</proxies>

``

<servers>

``

<server>

``

<id>micmiu-releases</id>

``

<username>michael</username>

``

<password>mypwd</password>

</server>

``

<server>

<id>micmiu-snapshots</id>

``

<privateKey>/home/micmiu/.ssh/id_dsa</privateKey>

``

<passphrase>mypwd</passphrase>

``

<directoryPermissions>``775``</directoryPermissions>

``

<filePermissions>``664``</filePermissions>

</server>

</servers>

``

<mirrors>

<mirror>

``

<id>mirrorId</id>

``

<mirrorOf>central</mirrorOf>

<name>micmiu ``for dev.</name>

<url>http:``//dev.micmiu.com/repo/maven2</url>

</mirror>

</mirrors>

<profiles>

<profile>

``

<id>jdk-``1.4``</id>

<activation>

``

<activeByDefault>``false``</activeByDefault>

``

<jdk>``1.4``</jdk>

``

<os>

``

<name>windows ``7``</name>

``

<family>windows</family>

``

<arch>x86</arch>

``

<version>``6.1``</version>

</os>

<property>

``

<name>mavenVersion</name>

``

<value>``3.0``.``4``</value>

</property>

``

<file>

``

<exists>/usr/local/micmiu/workspace/myfile</exists>

``

<missing>/usr/local/micmiu/workspace/myfile</missing>

</file>

</activation>

<properties>

<user.blog>www.micmiu.com</user.blog>

</properties>

</profile>

``

<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>

<profile>

<id>repo-dev</id>

``

<repositories>

``

<repository>

``

<id>nexus</id>

``

<name>nexus ``for develop</name>

``

<url>http:``//192.168.1.8:8080/nexus/content/groups/public/</url>

<layout>``default``</layout>

<releases>

``

<enabled>``true``</enabled>

``

<updatePolicy>daily</updatePolicy>

``

<checksumPolicy>warn</checksumPolicy>

</releases>

<snapshots>

``

<enabled>``true``</enabled>

``

<updatePolicy>daily</updatePolicy>

``

<checksumPolicy>warn</checksumPolicy>

</snapshots>

</repository>

</repositories>

<pluginRepositories>

<pluginRepository>

<id>nexus</id>

<name>local nexus</name>

<url>http:``//192.168.1.8:8080/nexus/content/groups/public</url>

<layout>``default``</layout>

<releases>

<enabled>``true``</enabled>

</releases>

<snapshots>

<enabled>``true``</enabled>

</snapshots>

</pluginRepository>

</pluginRepositories>

</profile>

</profiles>

``

<activeProfiles>

<activeProfile>repo-dev</activeProfile>

</activeProfiles>

</settings>

|

(1)各个节点的注释都有,可以看一下

(2)在配置了mirrorof的镜像后,并且mirrorof的规则是*的话,后面的profiles的repositories节点是没有意义的,可以去掉,但是profile节点还可以配置其他很多东西,所以不影响此节点下其他的除了repositories之外ide节点的东西

(3)maven的镜像从指定mirrorof的地址下载资源后,如果此地址没有该资源,不会去maven的超级pom下的中央仓库去下载资源,此时的nexus私服配置的有中央仓库地址,此时nexus私服会去中央仓库下,如果还没有,则要另外从网上下载,并上传到私服下

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容