maven访问nexus有三种配置方法
方式 | 优先级 |
---|---|
项目pom.xml | 优先级最高 |
user的settings.xml | 优先级中,未在pom.xml中配置repository标签,则使用这个配置 |
maven的settings.xml | 优先级最低,在项目pom.xml和user的settings.xml都没有配置仓库时,才使用这个配置 |
一般项目中都不会使用pom.xml配置,每个项目都要,难维护。
一般使用maven的settings.xml文件,好修改。
1 . 项目pom.xml
<repositories>
<repository>
<id>public</id>
<name>public</name>
<url>http://193.112.76.194:8081/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
2 . maven的settings.xml
<?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>F:/.m2/repository</localRepository>
<interactiveMode>true</interactiveMode>
<offline>false</offline>
<pluginGroups>
<pluginGroup>org.mortbay.jetty</pluginGroup>
<pluginGroup>org.jenkins-ci.tools</pluginGroup>
</pluginGroups>
<!--配置权限,使用默认用户,这里的id是项目发布配置pom中的id-->
<servers>
<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>
<mirrors>
<mirror>
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<url>http://193.112.76.194:8081/nexus/content/groups/public</url>
</mirror>
</mirrors>
<profiles>
<profile>
<id>nexus</id>
<!--指定仓库-->
<repositories>
<repository>
<id>public</id>
<url>http://193.112.76.194:8081/nexus/content/groups/public</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
</repositories>
<!--指定插件仓库-->
<pluginRepositories>
<pluginRepository>
<id>public</id>
<url>http://193.112.76.194:8081/nexus/content/groups/public</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<!--激活profile-->
<activeProfiles>
<activeProfile>nexus</activeProfile>
</activeProfiles>
</settings>
如果构建的 Maven 项目本地仓库没有对应的依赖包,那么就会去 Nexus 私服去下载,如果 Nexus 私服也没有此依赖包,就回去远程中央仓库下载依赖,这些中央仓库就是 proxy 。 Nexus 私服下载成功后再下载至本地Maven 库供项目引用。
发布jar到私服
增加发布的配置。
注意:这里的id要和maven的setting文件里面server标签的对应一致。
<!-- 项目发布 -->
<distributionManagement>
<repository>
<id>nexus-releases</id>
<name>Nexus Release Repository</name>
<url>http://192.168.1.110:8081/nexus/content/repositories/releases/</url>
</repository>
<snapshotRepository>
<id>nexus-snapshots</id>
<name>Nexus Snapshot Repository</name>
<url>http://192.168.1.110:8081/nexus/content/repositories/snapshots/</url>
</snapshotRepository>
</distributionManagement>
项目clean,install,deploy
发布如果报错:deploy时返回Return code is: 401错误
检查一下maven的setting文件是否用户名密码正确。
如果正确还是报这个错。检查eclipse的配置。是不是都使用了maven的设置文件。