代码之家  ›  专栏  ›  技术社区  ›  Matthew McCullough

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

  •  43
  • Matthew McCullough  · 技术社区  · 15 年前

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

    From the Maven documentation about catalog files :

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

    目录是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 Catalog 7) Terracotta Catalog

    您会注意到,如果存储库实际上发布了一个原型目录(上面的所有操作都是这样),那么您将得到一个UI提示,提示您在该目录中找到的所有选择。 archetype-catalog.xml . 例如:

    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

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

    5 回复  |  直到 12 年前
        1
  •  16
  •   Pascal Thivent    15 年前

    老实说,我不太明白建立所有目录列表的意义。在我看来,首先选择一个项目,然后根据需要添加目录更“自然”。这就是为什么在原型列表中有更多的值。不管怎样,你还是需要他们的名字,即使你在一个列表中有所有的目录。

    总之,这里有一些候选人;

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

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

    目录的重点是 不必事先知道原型的名字 . 它们被用来发布原型并允许 mvn archetype:generate 列出原型。因此,在使用时添加“外部”目录(不理解内部)以获得更广泛的已知原型列表是有意义的。 MVN原型:生成 .

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

    关于我的主张:

    • 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存储库中搜索原型并生成/更新 原型目录.xml 文件在 ~/.m2/repository 默认情况下。项目,人们只需要定期运行,比如:

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

    Grails没有提供目录。要创建项目, 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
    

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

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

    中列出的原型 ~/.m2/archetype-catalog.xml 我们现在可以使用 MVN原型:生成 对于颗粒(见选项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)
    ...
    

    这当然是一个(巨大的)解决方案,而且可能会产生副作用(您不会看到原型的新版本)。事实上,我不认为原型:爬行目标就是为了这个用途。我希望所有项目都能发布它们的原型。

        2
  •  2
  •   jeevatkm    12 年前

    对于Maven原型列表,请参考此链接 http://www.myjeeva.com/2012/06/exclusive-maven-archetype-list/ (你会发现大约607个原型)。

    使用时 mvn archetype:generate 有问题的命令 Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 197:

    提供 原型数 从上面的链接。

    注:默认值197

    • 197->org.apache.maven.architectype:maven architectype quickstart(包含示例maven项目的原型)。
        3
  •  1
  •   Alex Miller    15 年前

    兵马俑有一个,但我不知道网址在手…会发回。而且,我过去也用过原型 AppFuse ( http://static.appfuse.org/releases/ ) Webtide 虽然我不知道在哪里可以找到他们的原型目录。

    陶土仓库和目录如下: http://www.terracotta.org/download/reflector/maven2/

    也许这是有用的: http://docs.codehaus.org/display/MAVENUSER/Archetypes+List

        4
  •  1
  •   Brian Fox    15 年前

    由nexus生成并由m2eclipse使用的nexus索引了解所有原型,并允许您在从IDE创建新的maven项目时选择它们。

        5
  •  0
  •   Matthew McCullough    14 年前

    在Codehaus还有另一个资源,可以在“网络”上找到一个非常健壮的原型列表。 http://docs.codehaus.org/display/MAVENUSER/Archetypes+List