当前位置: 首页 > 面试题库 >

您知道的所有Maven原型目录的URL是什么?

盖向荣
2023-03-14
问题内容

Maven原型是您可以快速生成给定框架或项目类型的运行示例的“模板”。我正在尝试编译当前在网络上活动的所有Maven原型目录的列表。

从有关目录文件的Maven文档中:

有关原型的知识存储在目录中。

目录是xml文件。

原型插件与内部目录捆绑在一起。默认情况下使用此选项。

原型插件可以使用本地文件系统和HTTP连接中的目录。

到目前为止,我已经收集了确实发布目录的存储库列表,但是希望了解是否有人知道更多:

mvn archetype:generate
-DarchetypeCatalog=local
-DarchetypeCatalog=remote
-DarchetypeCatalog=http://repo.fusesource.com/maven2
-DarchetypeCatalog=http://cocoon.apache.org
-DarchetypeCatalog=http://download.java.net/maven/2
-DarchetypeCatalog=http://myfaces.apache.org
-DarchetypeCatalog=http://tapestry.formos.com/maven-repository
-DarchetypeCatalog=http://scala-tools.org
-DarchetypeCatalog=http://www.terracotta.org/download/reflector/maven2/

链接到同一页面:1)FuseSource 2) Cocoon
3)Java.net
4)MyFaces
5)Tapestry 6)Scala目录
7)Terracotta目录

您会注意到,如果存储库实际上发布了原型目录(以上所有内容都如此),您将获得一个UI提示,其中包含在其中找到的所有选择archetype- catalog.xml。例如:

mvn archetype:generate -DarchetypeCatalog=http://html" target="_blank">scala-tools.org

[INFO] No archetype defined. Using maven-archetype-quickstart (org.apache.maven.archetypes:maven-archetype-quickstart:1.0)
Choose archetype:
1: http://scala-tools.org -> scala-archetype-simple (A simple scala project)
2: http://scala-tools.org -> lift-archetype-blank (A blank/empty liftweb project)
3: http://scala-tools.org -> lift-archetype-basic (A basic liftweb project (with DB, css, ...))
Choose a number:  (1/2/3):

例如,如果要直接查看Scala目录文件,则可以浏览到http://scala-tools.org/archetype-
catalog.xml

但是,如果存储库未提供archetype-catalog.xml,则正如PascalT所说的那样,您需要事先知道名称(不太方便)并将其传递给命令行参数。


问题答案:

老实说,我并没有真正看到构建所有目录列表的意义。
对我来说,选择一个项目然后根据需要添加目录似乎更“自然”。这就是为什么IMO在原型列表中具有更多价值的原因。即使您将所有目录都放在列表中,也仍然需要它们的名称。

无论如何,这里有一些候选人。

  • Grails在http://snapshots.repository.codehaus.org/中具有原型。
  • Atlassian在https://maven.atlassian.com/repository/public/中具有原型

编辑:在马修澄清原型的目录后。

我误解了一些概念,而我的回答却不清楚和正确。

目录的目的就是 不必事先知道原型的名称 。它们是用来发布原型并允许mvn archetype:generate列出原型的。因此,在使用时,添加“外部”目录(不理解为内部目录)是有意义的,以获得更多的已知原型mvn archetype:generate

对于没有目录的原型,用户必须键入一个可怕的命令,该命令必须记录在某个地方(因为它需要工件的知识)。

关于我的主张:

  • 内部目录中包含Atlassian的原型。 这不是一个好主意。

  • Grails原型不在内部目录中或已发布的版本中archetype-catalog.xml这不是一个好主意。

  • ServiceMix的目录位于http://servicemix.apache.org/tooling/(基于http://servicemix.apache.org/tooling/<version>/archetype-catalog.xml模式)。 有效主张。

我在挖掘这一点时学到了一件有趣的事。Maven专家提供了一个很好的工具,可以帮助人们开发原型来创建目录XML:该archetype:crawl目标基本上是在本地Maven存储库中搜索原型,并默认情况下生成/更新archetype- catalog.xml文件~/.m2/repository。项目,人们只需要定期运行,例如:

mvn原型:抓取-Dcatalog = / var / www / html / archetype-catalog.xml

Grails没有提供目录。要创建一个项目,我们必须运行:

mvn org.apache.maven.plugins:maven-archetype-plugin:2.0-alpha-4:generate -DarchetypeGroupId=org.grails \
-DarchetypeArtifactId=grails-maven-archetype \
-DarchetypeVersion=1.0 \
-DarchetypeRepository=http://snapshots.repository.codehaus.org \
-DgroupId=example -DartifactId=my-app

但是一旦完成此操作,便会在本地存储库中获得原型。因此,如果我们键入:

mvn archetype:crawl -Dcatalog=/home/<me>/.m2/archetype-catalog.xml

原型被列出,~/.m2/archetype-catalog.xml我们现在也可以将mvn archetype:generateGrails用于(请参阅选项5):

mvn archetype:generate
...
[INFO] No archetype defined. Using maven-archetype-quickstart (org.apache.maven.archetypes:maven-archetype-quickstart:1.0)
Choose archetype:
1: local -> maven-archetype-archetype (archetype)
2: local -> maven-archetype-j2ee-simple (j2ee)
3: local -> maven-archetype-quickstart (quickstart)
4: local -> maven-archetype-webapp (webapp)
5: local -> grails-maven-archetype (maven-project)
6: internal -> appfuse-basic-jsf (AppFuse archetype for creating a web application with Hibernate, Spring and JSF)
...

这当然是一个(令人讨厌的)解决方法,并且可能会有副作用(您不会看到原型的新版本)。实际上,我不认为原型:抓取目标适用于此用途。我希望所有项目都可以发布它们的原型。



 类似资料:
  • 我如何解决这个问题?

  • 问题内容: 可能重复: 在JavaScript中使用“原型”还是“this”?所以我对JS中OOP的想法有些陌生。 这两个下面的代码片段有什么区别: 他们俩都做同一件事,所以有什么区别呢? 问题答案: 使用原型可以更快地创建对象,因为不必在每次创建新对象时都重新创建该功能。 执行此操作时: 每次创建动物时,都会从头创建该函数。但是当你这样做 不必每次都重新创建该函数;它存在于原型中的一处。所以,当

  • 这意味着该类已初始化,但未设置变量。 示例类: 实际的类非常大,我不想检查每个变量是否(xyz==null)。

  • 嗨,我已经使用以下命令在Ubuntu16.0.4中安装了JDK10。 我遵循下面的链接安装Java10。 如何在Ubuntu下安装JDK10? 他们正在显示正确的版本。 我尝试了安装的两个选项,但当我给出JDK路径表单IntelliJ时,我得到的是 “所选目录不是JDK的有效主目录”错误。

  • 问题内容: 这将意味着该类已初始化,但未设置变量。 示例类: 实际的类很大,我不想为每个变量检查​​if(xyz == null)。 问题答案: 尝试这样的事情: 尽管检查每个变量是否可行可能会更好。

  • 问题内容: 我刚刚安装了IntelliJ IDEA,并且正在尝试进行设置。我已经到了需要为我的JDK选择主目录的部分。 我尝试导航到Java安装,然后单击“确定”,但它告诉了我上面的消息。因此,我尝试了一下,但那也不起作用。 我尝试重新安装最新的JDK(从此处开始),但仍然无法选择我的JDK。我什至拖动了从网站上获得的安装程序,但文件选择器窗口无法识别它。 我处于停滞状态,不知道该怎么办。 问题答