Maven-Repository

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Maven-Repository
Artifact Repositories
在maven中, repository ⽤来存储构建⼯程和各种依赖.
严格上来说, 只有两种类型的仓库: 本地和远程. 本地仓库是指在你⾃⼰的机器上缓存远程的下载, 同时也包含了你还没有发布的临时构建.
本地和远程仓库以相同的⽅式组织. 所以脚本可以很轻松地在其他地⽅进⾏. 也可以同步⽤于离线使⽤. 通常的使⽤过程中, 仓库的布局对⽤户来说是透明的.
Why not Store JARs in CVS?
CVS, Version Control System. 版本控制系统. ⽤来记录源⽂件的历史信息,甚⾄⼆进制⽂件,媒体⽂件等. CVS可以协助⼀组⼈共同开发⼀个⼯程, 为⽂件冲突\合并提供了解决⽅案. (代码统⼀管理, 冲突解决⽅案, 代码权限管理, 版本发布和分⽀)
不推荐把你的JAR⽂件存储到CVS中. Maven尝试推⼴这样⼀个概念: ⼀个⽤户的本地仓库, 存储的JAR⽂件或任意其他⼯程, 能够被任意数⽬的构建共⽤. 很多⼯程的⼀些依赖, ⽐如xml解析器, 以及⼀些标准⼯具, 经常在典型构建中复⽤. 使⽤maven, 这些标准⼯具就可以存储在你的本地仓库中, 并且被任意数⽬的构建共享.
优势如下:
It uses less storage - 当⼀个仓库⾮常⼤时, 由于每个JAR都只保存在⼀个地⽅, 它实际上节省了空间, 即使它可能看起来不是这样.
It makes checking out a project quicker - 初始校验, 然后⼩幅度更新. 如果没有很⼤的⼆进制⽂件存在于CVS中, ⼀个⼯程的速度会更快. 当他们需要重新下载时, 只会发⽣⼀次, ⽽且不需要下载⼀些已经存在的共⽤JAR.
No need for versioning – CVS和其他源码控制系统是为版本⽂件设计的, 但外部依赖⼀般不会改变. 或者, 他们为了明⽰新版本⽽以各种⽅式修改⽂件命名. 把它们存储在CVS不会⽐保存在⼀个本地缓冲区中更有益.
Using Repositories
通常, 你应该不需要定期对⼀个本地仓库做什么事情. 除了在你缺乏硬盘空间时清理它, 或完全擦除它, 如果你想重新下载所有东西的话. ⽽对于远程仓库, 他们可以供你下载和上传.
Downloading from a Remote Repository
maven中的下载发⽣在: ⼀个⼯程声明了⼀个本地仓库中不存在的依赖, 或者对于⼀个快照snapshot, 当远程仓库包含了⼀个新版本时.
默认情况下, maven会从中央存储库下载.
你可以在你的setting.xml⽂件中设置使⽤⼀个特定的镜像, 但注意通常⼀个⼯程会在它们的pom.xml中⾃定义库, ⽽你的settings会优先. 如果你发现依赖⽆法被发现, 检查你是否覆盖了远程仓库.
Using Mirrors for the Central Repository
有很多分布在不同地理位置的官⽅中央仓库. 你可修改你的settings.xml⽂件, 使⽤⼀个或多个镜像.
Building Offline
如果你需要离线构建你的⼯程, 你可以在命令窗⼝使⽤以下离线开关:
1. mvn -o package
注意, 很多插件会⽀持这个离线设置, ⽽不执⾏需要连接⽹络的其他操作. 例如, 解决javadoc链接和链接检查⽹站.
Uploading to a Remote Repository
Internal Repositories
当使⽤maven时, 尤其是在⼀个协作环境中, 考虑到安全\速度或带宽问题, 连接到互联⽹来下载依赖不太合适. 因此, 建⽴⼀个内部仓库来存储构件复本\发布私有构件就⼗分重要.
这样⼀个内部仓库可以通过使⽤HTTP或⽂件系统的⽅式来下载, 或使⽤SCP, FTP或⽂件复制等⽅式来上传.
注意, 这个仓库没有什么特殊之处: 它是另⼀个远程仓库.
Setting up the Internal Repository
建⽴⼀个内部仓库,只要求你有⾜够的空间来存放它, 然后开始从远程仓库, ⽐如, 使⽤相同的布局来复制需要的构件,. Using the Internal Repository
使⽤内部仓库⾮常简单. 只需增加⼀个 repositories 元素.
如果你的内部仓库要求认证, id元素可⽤在你的settings ⽂件中指定登录信息.
Deploying to the Internal Repository
使⽤⼀个或多个内部仓库的最重要原因之⼀, 是能够发布你⾃⼰的私有版本.
为了发布到仓库中, 你需要通过 SCP, SFTP, FTP , WebDAV, 或者⽂件系统. 连接是通过各种各样的轮⼦完成了, 为了扩展你的构建, 可能需要添加⼀些轮⼦. 哈哈....
Reference。

相关文档
最新文档