質問

Mavenアーキタイプは" templates"です。これにより、特定のフレームワークまたはプロジェクトタイプの実行例を簡単に生成できます。ネット上で現在アクティブなすべてのMavenアーキタイプカタログのリストをコンパイルしようとしています。

カタログファイルに関するMavenドキュメントから

  

アーキタイプに関する知識が保存されます   カタログ内。

     

カタログはxmlファイルです。

     

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)タペストリー 6) Scalaカタログ 7)テラコッタカタログ

リポジトリが実際にアーキタイプカタログを公開する場合(上記のすべてが行う場合)、その 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カタログファイルを直接表示する場合は、 http:/を参照します。 /scala-tools.org/archetype-catalog.xml

ただし、リポジトリがarchetype-catalog.xmlを提供しない場合、PascalTが言うように、事前に名前を知って(あまり便利ではない)、コマンドライン引数で渡す必要があります。

役に立ちましたか?

解決

正直に言うと、すべてのカタログのリストを作成する意味はあまりありません。より「自然」に見える最初にプロジェクトを選択し、必要に応じてカタログを追加します。これが、アーキタイプのリストにより多くの価値がある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 パターン)。 有効な提案。


これを掘りながら学びました。 maven guysは、アーキタイプの開発者がカタログXMLを作成するのに役立つ素晴らしいツールを提供します。 archetype:crawl ゴールは、基本的にArchetypeを検索してローカルのMavenリポジトリをクロールし、デフォルトでは、〜/ .m2 / repository の.xml ファイル。プロジェクトでは、次のような定期的に実行する必要があります。

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

アーキタイプは〜/ .m2 / archetype-catalog.xml にリストされ、Grailsでも 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の目標はこの用途を意図したものではないと思います。すべてのプロジェクトでアーキタイプを公開してください。

他のヒント

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

mvn archetype:generate コマンドを使用して、質問を選択するか、フィルターを適用します(形式:[groupId:] artifactId、大文字と小文字を区別して含む):197:

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

注:デフォルト値は197

  • 197-&gt; org.apache.maven.archetypes:maven-archetype-quickstart(サンプルMavenプロジェクトを含むアーキタイプ)

Terracottaには1つありますが、URLがオフハンドであることがわかりません...ポストバックします。また、過去に AppFuse http://static.appfuse.org/releases/ )および Webtide が、アーキタイプカタログの場所を知りません。

Terracottaのリポジトリとカタログはこちらです: http://www.terracotta.org/ download / reflector / maven2 /

おそらくこれは便利です: http://docs.codehaus.org/display/MAVENUSER/Archetypes+List

Nexusによって生成され、M2eclipseによって消費されるnexusインデックスは、すべてのアーキタイプを認識しており、IDEから新しいMavenプロジェクトを作成するときにそれらを選択できます。

Codehausには、ネット上にある非常に堅牢なアーキタイプのリストに関する別のリソースがあります。 http://docs.codehaus.org/display/MAVENUSER/Archetypes+List

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top