16

我从现有项目中创建了一个 Maven 原型。我什至在我的本地存储库中安装了原型并用它来创建一个新项目。一切都很完美(难以置信)。

问题是我想分发这个原型,这样任何人都可以将它安装在他的本地机器上,甚至部署到一个 maven repo 以使用它。我正在考虑分发生成的工件 JAR,而不是我的项目的源代码,并让人们安装它,但它似乎没有作为原型安装,或者至少在我尝试使用它时无法识别。

我使用 mvn install:install-file 目标来做到这一点。

这是最好的方法吗?是否可以分发此 JAR 文件以将其安装为原型?JAR 文件是否缺少某些内容?

提前致谢。

4

4 回答 4

25

这里有一些澄清:

// installs the project to your local repository (jar, archetype, etc.)
mvn install
// AND updates archetype catalog
mvn install archetype:update-local-catalog
// calls plugin archetype goal crawl
mvn archetype:crawl

Crawl 遍历 Maven repo 和 CREATES 目录。

如果您希望以交互方式使用原型,则需要使用完整坐标调用 if 或将其列在目录中。

// use local catalog
mvn archetype:generate -DarchetypeCatalog=local
// full coordinate set, my example
mvn archetype:generate -DarchetypeGroupId=pl.lafk -DarchetypeArtifactId=simple-testng-quickstart -DarchetypeVersion=1.0 -DgroupId=pl.lafk -DartifactId=sample-app

当您打电话时,mvn deploy您会执行所有安装操作并将包推送到远程存储库 - 如果您配置了它。

我使用的链接是用于插件的 Maven 站点:https ://maven.apache.org/archetype/archetype-packaging/index.html

此外:mvn archetype:help

于 2016-04-10T22:14:12.580 回答
5

嗨,这是一个迟到的回应,但我遇到了同样的问题,我没有找到如何共享原型的明确说明。因此,我希望以下内容可以帮助像我一样挣扎的人:

  • 开发您的原型:单独或使用mvn archetype:create-from-project。互联网上有足够的说明来解释如何做到这一点。
  • 在 pom.xml 中输入分发管理元素,其中必须定义要发布/共享原型的关系存储库。与连接属性等的maven/settings.xml的链接是使用 id 元素而不是 url 元素创建的。
  • 使用要在本地 maven 存储库中安装原型的所有选项调用“ mvn clean install ”
  • 调用“ mvn deploy ”,maven 将完成剩下的工作并自行更新您的远程 archetype-catalog.xml!
  • 要测试原型是否真正被识别,请调用“mvn archetype:generate -Dfilter=[your archetype artifactid]”,它应该在列表中。
于 2017-10-05T08:18:51.783 回答
1

对于那些寻找最新信息的人:在自定义存储库中为当前版本的插件使用原型目录的方法(请参阅此评论的日期),在您的设置中定义(Mac 中的 ~.m2/setting.xml) id 为“archetype”的存储库:

<repository>
    <id>archetype</id>
    <name>archetype_company_repo</name>
    <url>http://your.company.com/nexus/content/repositories/releases/</url>
</repository>
于 2018-08-02T23:40:17.783 回答
0

Maven 原型是工件,就像任何其他项目构建工件一样。deploy您可以使用 Maven命令将它们部署到您的存储库。

有关这些主题的更多信息,请参阅创建原型指南示例Maven和Maven:完整参考

于 2012-10-26T21:15:16.470 回答