在我的公司我们使用的是Archiva,它是目前为止最简单的Repository Manager设置和维护。特别是如果你使用独立版本。每位开发人员只需在其~/.m2/settings.xml
文件中设置profile
以指向内部存储库。如果这太麻烦了,只需将<repositories/>
中的内部存储库直接放入pom.xml
即可,但这是非常糟糕的做法。如果存储库网址不断移动,则必须更新所有项目pom.xml
文件。在使用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">
<profiles>
<profile>
<id>internal</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<repositories>
<repository>
<id>mycompany.internal</id>
<name>Internal Release Repository</name>
<url>http://maven.mycompany.com/repository/internal/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>mycompany.snapshots</id>
<name>Internal Snapshot Repository</name>
<url>http://maven.mycompany.com/repository/snapshots/</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
</profile>
</profiles>
<servers>
<server>
<id>internal</id>
<username>guest</username>
</server>
<server>
<id>snapshots</id>
<username>guest</username>
</server>
</servers>
</settings>
如果建立一个仓库管理器是太麻烦了,我想你需要手动添加的东西替代重新用手本地资源库,这是非常容易出错且费时。我为我的个人开发运行Archiva实例,仅仅因为它很容易添加release
插件并管理版本,而不必记住在每台计算机上向本地存储库添加内容所需的所有神秘的-D
选项。复制~/.m2/settings.xml
文件是非常容易的,如果它在一台机器上运行,它可以在所有机器上运行。
以下是添加到您的pom.xml
以启用自动执行发布并将工件推送到存储库的示例,在我的示例中为Archiva。
<distributionManagement>
<repository>
<id>internal</id>
<name>Internal Archiva Repository</name>
<url>http://maven.mycompany.com/repository/internal/</url>
<layout>default</layout>
<uniqueVersion>false</uniqueVersion>
</repository>
<snapshotRepository>
<id>snapshots</id>
<name>Internal Archiva Repository</name>
<url>http://maven.mycompany.com/repository/snapshots/</url>
<layout>default</layout>
<uniqueVersion>false</uniqueVersion>
</snapshotRepository>
</distributionManagement>
然后你要做的就是mvn clean release:prepare
自动更新您的pom.xml
版本支票,标签和可选分支释放,包中的所有文物,然后mvn release:perform
的假象推送到远程的存储库并检入新版本的pom.xml
,并且您已准备好开始下一个版本的开发。
快照得snaphots
并发布到internal
在发布插件自动运行。你必须配置SCM插头为好,但就是配置的短短的几行,你只需要轻触一下,以及。
这是它看起来像git的,我们使用Gitorious作为我们的Git仓库经理
<scm>
<connection>scm:git:git://gitorious.mycompany.com:myproject/myproject.git</connection>
<developerConnection>scm:git:ssh://[email protected]/myproject/myproject.git</developerConnection>
<url>http://gitorious.mycompany.com/myproject/myproject</url>
</scm>
运行Linux可以处理存储库的职责是这样一个开发团队,而无需涉及采购的旧台式电脑和IT。
设置Nexus是很容易的。我有一个实例在家里为自己运行。 – ColinD 2011-03-14 16:07:46
用nexus创建一个本地仓库太过于矫枉过正?你可以用它代理所有的maven回购站并保留这些第三方的罐子。 – Augusto 2011-03-14 16:09:15
当然,我可以安装Nexus。但之后我不得不要求每个接触这个项目的人都这样做。或者将其设置在服务器上,备份它,担心安全性等。它似乎是处理一些定制jar文件的非常麻烦的解决方案。 – 2011-03-14 17:09:58