45

Mavenアーキタイプは、特定のフレームワークまたはプロジェクトタイプの実行例をすばやく生成できる「テンプレート」です。現在ネット上でアクティブになっているすべての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が言うように、名前を事前に知って(あまり便利ではありません)、コマンドライン引数で渡す必要があります。

4

5 に答える 5

16

正直なところ、すべてのカタログのリストを作成する意味がわかりません。最初にプロジェクトを選択してから、必要に応じてカタログを追加する方が「自然」に思えます。これが、アーキタイプのリストに IMO より多くの価値がある理由です。リストにすべてのカタログがある場合でも、とにかく名前が必要です。

とにかく、ここにいくつかの候補があります。

編集: アーキタイプのカタログに関するマシューの説明の後。

いくつかの概念を誤解しており、私の答えは明確で正しくありません。

カタログのポイントは、アーキタイプの名前を事前に知る必要がないことです。それらはアーキタイプを公開し、アーキタイプmvn archetype:generateをリストできるように作られています。したがって、「外部」カタログを追加して (内部ではないことを理解してください)、使用時に既知のアーキタイプのより広いリストを取得することは理にかなっていますmvn archetype:generate

カタログのないアーキタイプの場合、ユーザーは恐ろしいコマンドを入力する必要があり、これはどこかに文書化する必要があります (アーティファクトの知識が必要になるため)。

私の提案について:

  • アトラシアンのアーキタイプは内部カタログにあります。良い提案ではありません。

  • Grails アーキタイプは、内部カタログにも公開された にもありませんarchetype-catalog.xml良い提案ではありません。

  • ServiceMixにはhttp://servicemix.apache.org/tooling/http://servicemix.apache.org/tooling/<version>/archetype-catalog.xml (パターンに基づく) にカタログがあります。有効な提案。


これを掘っているときに私が学んだ1つの楽しいこと。Maven の連中は、アーキタイプを開発している人々がカタログ XML を作成するのに役立つ優れたツールを提供しています。archetype:crawl目標は基本的に、アーキタイプを検索するローカルの Maven リポジトリをクロールし、デフォルトで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/<me>/.m2/archetype-catalog.xml

アーキタイプがリストされ、Grails にも~/.m2/archetype-catalog.xml使用できるようになりましたmvn archetype:generate(オプション 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)
...

もちろん、これは (大げさな) 回避策であり、副作用が生じる可能性があります (新しいバージョンのアーキタイプは表示されません)。実際、archetype:crawl のゴールはこの用途を意図したものではないと思います。私はすべてのプロジェクトに彼らのアーキタイプを公開してもらいたいと思っています。

于 2009-03-13T05:24:23.210 に答える
1

Maven Archetype リストについては、このリンクhttp://www.myjeeva.com/2012/06/exclusive-maven-archetype-list/を参照してください(約 607 の Archetypes が見つかります)。

mvn archetype:generateの質問でコマンドを使用している間Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 197:

上記のリンクからアーキタイプ番号を提供します。

注: デフォルト値は 197 です

  • 197 -> org.apache.maven.archetypes:maven-archetype-quickstart (サンプル Maven プロジェクトを含むアーキタイプ)
于 2012-07-01T06:19:13.950 に答える
0

コードハウスには、ネット上に出回っているアーキタイプの非常に堅牢なリストに関するさらに別のリソースがあります。 http://docs.codehaus.org/display/MAVENUSER/Archetypes+List

于 2010-02-05T22:47:53.010 に答える