当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《您知道的所有MavenArchetype目录的URL是什么?》经验,为你挑选了1个好方法。

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

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

关于原型的知识存储在目录中.

目录是xml文件.

Archetype插件捆绑了内部目录.默认情况下使用此选项.

Archetype插件可以使用本地文件系统和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://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所说的那样,你需要提前知道名称(更不方便)并在命令行参数中传递它.



1> Pascal Thive..:

说实话,我并没有真正看到建立所有目录列表的重点.对我来说,首先选择项目然后根据需要添加目录看起来更"自然".这就是为什么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//archetype-catalog.xml模式).有效的主张.


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

mvn archetype:crawl -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//.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)
...

这当然是一个(丑陋的)解决方法,它可能有副作用(你不会看到新版本的原型).实际上,我不认为原型:抓取目标是用于此用途.我希望所有项目都能发布他们的原型.

推荐阅读
虎仔球妈_459
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有