第九章 使用Nexus创建私服
如需要改变端口,可以修改nexus-webapp-x.x.x/conf/plexus.properties文件中的??application-port属性即可。
Deployment Policy:只读(禁止部署)、关闭重新部署(同一构件只能部署一次)或允许重新部署。
Allow File Browser:设置是否允许在Repository的BrowseStorage选项卡中浏览仓库。
Include in Search:设置是否对该仓库进行索引并提供搜索。
Publish URL:设置是否通过URL提供服务,如为false,访问该仓库的地址时会得到404
Not Found Cache TTL:缓存未找到文件信息的时间(此时间内不再去找,直接返回没找到)
Download Remote Indexes:设置是否下载远程仓库的索引。(下载远程仓库的索引后,即使没有缓存远程仓库的构件,用户依然能搜索或浏览构件的基本信息)
Checksum Policy:设置校验和出错时,是忽略、记录警告信息还是拒绝下载。
Artifact Max Age:设置多久更新一次Artifact(对于策略为release的仓库,可以设置为-1,也就是不更新)
Metadata Max Age:设置多久更新一次metadata。
<profiles> <profile> <id>nexus</id> <repositories> <repository> <id>nexus</id> <name>Nexus</name> <url>http://localhost:8081/nexus/content/groups/public/</url> <releases><enabled>true</enabled></releases> <snapshots><enabled>true</enabled></snapshots> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>nexus</id> <name>Nexus</name> <url>http://localhost:8081/nexus/content/groups/public/</url> <releases><enabled>true</enabled></releases> <snapshots><enabled>true</enabled></snapshots> </pluginRepositories> </profile></profiles><activeProfiles> <activeProfile>nexus</activeProfile></activeProfiels> ?
同时我们可以settings.xml中将Maven私服设为所有远程仓库的镜像,这样就能让所有Maven下载请求都仅仅通过Nexus:
?
<mirrors> <mirror> <id>nexus</id> <mirrorOf>*</mirrorOf> <url>http://localhost:8081/nexus/content/groups/public</url> </mirror></mirrors>?
<repositories> <repository> <id>central</id> <url>http://central</url> <releases><enabled>true</enabled></releases> <snapshots><enabled>true</enabled></snapshots> </repository></repositories><pluginRepositories> <pluginRepository> <id>central</id> <url>http://central</url> <releases><enabled>true</enabled></releases> <snapshots><enabled>true</enabled></snapshots> </pluginRepository>?</pluginRepositories> ?
仓库及插件仓库的id为central,覆盖了超级POM中央仓库的配置它们的url已无关紧要,因为所有请求都会通过镜像访问私服地址。这样配置的主要目的是开放对snapshot版本下载的支持。
其实只要项目配置中有一个依赖仓库开放了 snapshot策略就行。而且如果私服仓库组中的仓库不支持 snapshot也没用。
<distributionManagement> <repository> <id>nexus-releases</id> <name>Nexus Releases Repository</name> <url>http://localhost:8081/nexus/content/repositories/releases/</url> </repository> <snapshotRepository> <id>nexus-snapshots</id> <name>Nexus Snapshots Repository</name> <url>http://localhost:8081/nexus/content/repositories/snapshots/</url> </snapshotRepository></distributionManagement> ?
同时在settings中的配置Nexus的认证信息:
?
<servers> <server> <id>nexus-releases</id> <username>admin</username> <password>password</username> </server> <server> <id>nexus-snapshots</id> <username>admin</username> <password>password</username> </server></servers>?
同时,Nexus也支持在repository的Artifact Upload选项卡中手动上传构件。
用户可以通过导航栏中ScheduledTasks链接创建可调度任务。
?
JFrog的Artifactory,它将构件存储在数据库中,地址为http://www.jfrog.org/products.php。