2012-03-20 94 views
3

我非常接近终于有了archiva和maven的工作设置。将maven设置为使用archiva存储库而不使用activeByDefault?

最后一件令我难以置信的事情是如何设置我的内部和快照储存库 - 不使用包含activeByDefault设置为true的配置文件。

我正在使用SUPER超级pom - 一个公司范围的pom,其中包含版本的distribution management信息。我在想,我可以在这个pom中指定存储库,并在settings.xml中配置身份验证设置?我可以使用没有配置文件的存储库标签吗?应该没有“配置文件”我的内部和快照储存库,因为他们永远不会改变...

我试图避开,是使用“默认”配置文件,它始终处于活动状态。我听说activeByDefault不是最佳做法,我也不打算使用它。

就这样说,我该如何去做这件事?我的内部回购是maven中央回购的镜像,所以我想锁定我的开发人员只使用我们的内部工件服务器。请记住 - 我不希望将activeByDefault设置为true的配置文件。我无法强调这一点!我应该使用Maven镜像吗?我应该“添加”额外的存储库吗?

如果我使用存储库标记而不是镜像标记,maven force将只使用我的archiva设置,而不是默认的maven central?

或者我试图完成只能使用maven中的镜像标记才能完成?我知道如何在使用存储库标记时配置repo凭据,但不能使用镜像。这是如何完成的?为镜像标签中的任何内容提供凭据与存储库标签中的任何内容相同?

我错过了一些明显的东西吗?我已经使用maven来完成并运行了。我知道它最终是值得的,但它肯定会导致我大量的恶化,并且资源似乎很稀少。要么是这样,要么是人们满意地使用它,但是他们不考虑最佳实践。

谢谢

回答

7

要使用你的内部回购为中心的镜子,你需要建立一个像这样的镜子(Settings.XML中):

<mirrors> 
    <mirror> 
     <id>my-internal-repo</id> 
     <mirrorOf>central</mirrorOf> // use * for do mirror of all 
     <name>Clinker Maven Repository</name> 
     <url>http://my-repo-host/my-repo-path</url> 
    </mirror> 
</mirrors> 

如果my-internal-repo是受保护的,你可以设置凭据:

<servers> 
    <server> 
     <id>my-internal-repo</id> 
     <username>youruser</username> 
     <password>yourpassword</password> 
    </server> 
</servers> 

请注意,服务器ID标记内容应该与您的镜像ID相匹配。

要使用internal-snapshots库您必须在您的项目POM的存储库,因为使用快照神器应控制并明确在项目级别定义,而不是在设置级别:

<repository> 
    <id>internal-snapshots</id> 
    <url>http://your-repo-host/internal-snapshots-path</url> 
    <releases> 
     <enabled>false</enabled> 
    </releases> 
    <snapshots> 
     <enabled>true</enabled> 
    </snapshots> 
</repository> 

而且最后,你必须从镜子排除internal-snapshots

<mirrors> 
    <mirror> 
     <id>my-internal-repo</id> 
     <mirrorOf>central, !internal-snapshots</mirrorOf> // use * to do mirror of all 
     <name>Clinker Maven Repository</name> 
     <url>http://my-repo-host/my-repo-path</url> 
    </mirror> 
</mirrors> 

,并添加一台服务器(如果它受保护):

<servers> 
    <server> 
     <id>my-internal-repo</id> 
     <username>youruser</username> 
     <password>yourpassword</password> 
    </server> 
    <server> 
     <id>internal-snapshots</id> 
     <username>youruser</username> 
     <password>yourpassword</password> 
    </server> 
</servers> 
+0

非常感谢你,这样干净的方式来做到这一点。我无法忍受虐待maven配置文件 - 这是一个很好的解决方法。 – 2012-03-21 04:10:52

+0

您的配置是否也会自动从Maven中央回购站下载插件,或者我必须在某处添加标签?如果是这样,我该如何设置它们? – 2012-03-24 03:27:50

+0

镜子也适用于插件。不需要更多配置。 – amuniz 2012-03-24 10:51:30

相关问题