如何设置和使用内部Maven存储库?

时间:2010-12-11 03:50:21

标签: maven-2 maven

美好的一天,每个人。

我正在尝试设置一个内部存储库,我可以与本地网络中的某些人共享,但无法访问Internet。到目前为止,我已经在我的本地机器中设置了Archiva,并将存储库指向我的〜/ .m2 / repository。我让那些人设置他们的Maven settings.xml并添加以下配置文件:

 <profile>
 <id>archiva</id>

 <repositories>
  <repository>
   <id>archiva</id>
   <url>http://mymachine:8087/archiva/repository/internal/</url>
   <releases>
    <enabled>true</enabled>
   </releases>
   <snapshots>
    <enabled>true</enabled>
   </snapshots>
  </repository>
 </repositories>
 <pluginRepositories>
  <pluginRepository>
   <id>archiva</id>
   <url>http://mymachine:8087/archiva/repository/internal/</url>
   <releases>
    <enabled>true</enabled>
   </releases>
   <snapshots>
    <enabled>true</enabled>
   </snapshots>
  </pluginRepository>
 </pluginRepositories>
 </profile>

我还要求他们将此个人资料设为始终有效。但是,当他们尝试使用mvn archetype:generate生成新的Java项目时,他们总是会收到错误。我实际上忘记了错误是什么,但它与目标有关。他们可以从Archiva下载罐子,但这一代仍然失败。我还给了他们原型目录的副本,但它仍然失败了。我错过了什么?

2 个答案:

答案 0 :(得分:4)

  

我已在本地计算机中设置Archiva并将存储库指向我的〜/ .m2 / repository

我认为这是一个错误的想法。你将两个概念混合在一起。 Archiva是一个外部存储库,而~/.m2是一个本地存储库。它们应该分开存放,即使物理机器是相同的。

答案 1 :(得分:2)

你熟悉原型吗?它们是项目模板,您需要创建一个原型项目(并mvn deploy到您的服务器),以便它们可以首先初始化。然后,他们将使用像

这样的代码
mvn archetype:generate -DarchetypeGroupId=edu.berkeley.cs.sketch -DarchetypeArtifactId=skalch-archetype2 ...

请参阅ntung.com/mvn的完整示例。我有一个原型项目here(github)的例子。它们非常基本且易于阅读。请注意,原型项目本身就是一个maven项目,因此顶级pom.xml用于原型,src/main/resources/archetype-resources/pom.xml是您希望将上述代码引用到服务器的位置。

也许您的意思是键入archetype:create而不是archetype:generate?如果是这种情况,请参见http://maven.apache.org/guides/getting-started/index.html#How_do_I_setup_Maven

顺便说一句,由于Maven使用了这么多的插件,祝你在没有互联网连接的情况下工作!您可以尝试使用buildr。