美好的一天,每个人。
我正在尝试设置一个内部存储库,我可以与本地网络中的某些人共享,但无法访问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下载罐子,但这一代仍然失败。我还给了他们原型目录的副本,但它仍然失败了。我错过了什么?
答案 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。