gpt4 book ai didi

java - 您知道的所有 Maven Archetype 目录的 URL 是什么?

转载 作者:IT老高 更新时间:2023-10-28 20:40:26 36 4
gpt4 key购买 nike

Maven Archetypes是"template",您可以通过它快速生成给定框架或项目类型的运行示例。我正在尝试编译当前在网络上 Activity 的所有 Maven 原型(prototype)目录的列表。

From the Maven documentation about catalog files :

Knowledge about archetypes are stored in catalogs.

The catalogs are xml files.

The Archetype Plugin comes bundled with an internal catalog. This one is used by default.

The Archetype Plugin can use catalogs from local filesystem and from HTTP connections.

到目前为止,我已经收集了发布目录的存储库列表,但很想看看是否有人知道更多:

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) FuseSource2) Cocoon3) Java.net4) MyFaces5) Tapestry6) Scala Catalog7) Terracotta Catalog

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

mvn archetype:generate -DarchetypeCatalog=http://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目录文件例如,你可以browse to http://scala-tools.org/archetype-catalog.xml

但是,如果存储库不提供 archetype-catalog.xml,那么正如 PascalT 所说,您需要提前知道名称(不太方便)并在命令行参数中传递它。

最佳答案

说实话,我真的不明白建立所有目录列表的意义。对我来说,首先选择一个项目然后在需要时添加目录看起来更“自然”。这就是为什么 IMO 在原型(prototype)列表中具有更多值(value)的原因。无论如何你都需要他们的名字,即使你有一个列表中的所有目录。

不管怎样,这里有一些候选人;

编辑:在 Matthew 澄清原型(prototype)目录之后。

我误解了一些概念,我的答案并不明确和正确。

目录的意义在于不必提前知道原型(prototype)的名称。它们用于发布原型(prototype)并允许 mvn archetype:generate列出原型(prototype)。因此,在使用 mvn archetype:generate 时添加“外部”目录(不理解内部目录)以获得更广泛的已知原型(prototype)列表是有意义的。 .

对于没有目录的原型(prototype),用户必须输入一个可怕的命令,该命令必须记录在某处(因为它需要了解工件)。

关于我的建议:

  • Atlassian 的原型(prototype)在内部目录中。 不是一个好的提议。

  • Grails 原型(prototype)不在内部目录或已发布的archetype-catalog.xml 中. 不是一个好的提议。

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


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

mvn archetype:crawl -Dcatalog=/var/www/html/archetype-catalog.xml

Grails doesn't provide a catalog. To create a project, we have to run:

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

但是一旦我们这样做了,我们的本地存储库中就有了原型(prototype)。所以如果我们输入:

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

原型(prototype)在 ~/.m2/archetype-catalog.xml 中列出我们现在可以使用 mvn archetype:generate也适用于 Grails(参见选项 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)
...

这当然是一个(很好的)解决方法,它可能会产生副作用(你不会看到新版本的原型(prototype))。实际上,我不认为 archetype:crawl 目标是为此用途而设计的。我希望所有项目都发布他们的原型(prototype)。

关于java - 您知道的所有 Maven Archetype 目录的 URL 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/635543/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com