nexus私服主要是在项目和maven中央仓库中间做代理,一般在公司内网或者公司内部的一些私包,都需要这么个产品。下面主要是关于maven和nexus之间的一些配置
1、在pom中配置nexus私服
<!-- jar仓库 --> <repositories> <repository> <id>nexus</id> <name>nexusRep</name> <url>http://xxx.74.97.19999:8081/nexus/content/groups/public/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository> </repositories> <!-- 插件库 --> <pluginRepositories> <pluginRepository> <id>nexus</id> <name>nexusPlugin</name> <url>http://xxx.74.97.19999:8081/nexus/content/groups/public/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </pluginRepository> </pluginRepositories>
<profile> <id>jdk18</id> <activation> <activeByDefault>true</activeByDefault> <jdk>1.8</jdk> </activation> <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion> </properties> </profile>
2、在当前项目的pom文件做以上配置,仅仅在当前项目中生效,如果想在所有项目中生效,需要在maven的setting.xml文件中进行配置。
<profile> <id>nexusProfile</id> <activation> <jdk>1.8</jdk> </activation> <repositories> <repository> <id>nexus</id> <name>nexusRep</name> <url>http://xxx.74.97.19999:8081/nexus/content/groups/public/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>nexus</id> <name>nexusPlugin</name> <url>http://xxx.74.97.19999:8081/nexus/content/groups/public/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </pluginRepository> </pluginRepositories> </profile> </profiles>
<activeProfiles> <activeProfile>nexusProfile</activeProfile> </activeProfiles>
激活当前配置。
这样就可以使所有的项目都使用自己的nexus私服。但是你会发现还有小部分请求会到maven的中央工厂,解决方法就是配置mirror
<mirror> <id>nexus</id> <name>nexus</name> <mirrorOf>*</mirrorOf> <url>http://xxx.74.97.19999:8081/nexus/content/groups/public/</url> </mirror>
这样限制住服务只能通过nexus私服去访问maven中央仓库,如果当前的nexus私服宕机了,那么项目是无法使用maven中央仓库数据的。
3、将项目发送到nexus私服中去
首先在pom中配置发布的地址
<distributionManagement> <repository> <id>nexus-rep</id> <name>nexusRep</name> <url>http://xxx.74.97.xxx:8081/nexus/content/repositories/releases/</url> </repository> <snapshotRepository> <id>nexus-snap</id> <name>nexusSnap</name> <url>http://xxx.74.97.xxx:8081/nexus/content/repositories/snapshots/</url> </snapshotRepository> </distributionManagement>
发布项目还需要授权,这个需要在setting文件中配置
<server> <id>nexus-rep</id> <username>deployment</username> <password>deployment123</password> </server> <server> <id>nexus-snap</id> <username>deployment</username> <password>deployment123</password> </server>
执行mvn:deploy,即可发布。