質問

私は、maven-2.2.1-uber.jar を使用して、Maven を管理する Web アプリ (Struts で) を作成するプロジェクトで忙しかったです。 リンクテキスト. 。問題は、上司が、会社が作成したいくつかのアーキタイプを使用する必要があると言ったときに発生します (つまり、いたずらっ子のために、事前に定義されたアーキタイプはありません!)。それで、-DarchetypeRepository オプションを使用します (ServletWrapper を使用すると、リポジトリがアプリ内にあるため、完全な Web 方向を取得できます)。ログはそれを見つけたようですが、この小さなテキストでビルドが - 悲惨なことに - 失敗します。ビルドの失敗 - 定義されたアーティファクトは、それほど単純なアーキタイプではありません。もちろん、まったく関係のない情報行がたくさんあります。何らかの助けを求めて Maven の決定版ガイドを読みましたが、よく言ってもがっかりしました。

私の考えでは、すべてのフォルダーツリーのどこかに、実際に私のpom.xmlがプロジェクトではなく原型であるとMavenが言っているxmlが欠けているのではないかと思います。しかし、実際のところ、ネット上やマニュアルには、archetype:generate (特別なパラメーターを使用) がどのように機能するのか、すべてのフォルダーやファイルをどこに配置する必要があるのか​​をわかりやすく説明したものが見つかりません。

私の考えを声に出して言いたいと思います(そして、私が尋ねようとしていることを理解していただければ幸いです)。XML の変更 (変数など) を行うテンプレートがあるので、maen を呼び出して、変数プロジェクトで Archetype:generate を実行する必要があります。問題は、私の実際の構成が私がやっていることを気に入らないことのようです。アーキタイプの生成後、幸いなことにウィッチはいくつかのディレクトリツリーを作成し、どこかにPOM.xmlを残してくれます。変数の変更やさらに多くのXML管理を行う必要があるため、何も破壊しないようにするのはMavenからすると非常に親切でしょう。この過程で。

私の原型が間違いなく原型であると仮定した後、なぜこの奇妙なことがうまくいかないのか何か考えはありますか?私は maven-ubber を使用していて実際の CSMavenCli.main(String[, ClassWorld) を呼び出しているので、コードは大丈夫だと思いますが、間違っている可能性があります。今回はそうではないと思います。

皆さん、ありがとうございました!:)

ランダム。

役に立ちましたか?

解決

  生成(特別なパラメータで)動作し、私はすべてのフォルダおよび/またはファイルを配置する必要がありますここで、

しかし、私は本当に、本当に、ネット上または原型がいかに簡単利き説明マニュアルに何かを見つけることができません。

あなたの最善の策は、既存のアーキタイプのソース私見を見になり、理想的な何か、あなたがやっているものに近います。

  このMavenの-事は幸せ史上 - 後

?私の原型は間違いなく原型であると仮定しない理由

任意のアイデア

正直なところ、私は確信して私はあなたがそうやっていることはわかっていないんだ、いや、いやアイディアます。

他のヒント

まず第一に、答えてくれてありがとう:)

今日は、Maven のチュートリアルを見て、アーキタイプがどのように機能するかをより深く理解しようとしています。 ここ, 、それでも非常に残念です。

私の問題は、mvn Archetype:generate 命令を実行しようとすると、Maven でビルドが失敗することです。これはできるだけ単純な、私の問題です。ビルドの問題には、「定義されたアーティファクトはアーキタイプではありません」と表示されます。

暗号化解除された命令 Archetype:create を試してみましたが、エラーはほぼ同じですが、「埋め込みエラー:」と追加されています。Meta-inf/maven/archetype.xml記述子は見つかりません。」私のアーキタイプにはArchetype.xmlがあるので、正当な理由で非表示の命令が非表示になっているようです。

私の全体的な指示は次のとおりです

mvn archetype:generate
-DgroupId=my_groupid
-DartifactId=my_artifactid
-Dversion=1.0
-DarchetypeGroupId=archetype-foo-lib
-DarchetypeArtifactId=my.archetype.foo
-DarchetypeVersion=1.0
-DarchetypeRepository=C:/.m2/repository
-Dbasedir=C:/.m2/repository/archetype-foo-lib
-B
-DinteractiveMode=false

basedir には pom.xml と dom4j.jar があり、(小さな Tomcat サーバー内に)リポジトリが起動しています。また、アーキタイプがインストールされ、archetypegroupid、archetypeartifacid、および Archetypeversion が src\main esources\archetype-resources フォルダー内のものと同じになります。また、(念のため)basedir のスラッシュを「\」に変更しようとしましたが、より良い結果は得られませんでした。

ここでは Maven コンソールで直接実行しようとしているので、Web アプリ プロジェクトなどのことは忘れてかまいません。コンソールで動作し始めたら、うまくいけばそこで動作するようになります。

ああ!また、スタックトレースもあります(これを -e パラメータで実行したため)

+ Error stacktraces are turned on.
[INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: 'archetype'.
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven Default Project
[INFO]    task-segment: [archetype:generate] (aggregator-style)
[INFO] ------------------------------------------------------------------------
[INFO] Preparing archetype:generate
[INFO] No goals needed for project - skipping
[INFO] Setting property: classpath.resource.loader.class => 'org.codehaus.plexus
.velocity.ContextClassLoaderResourceLoader'.
[INFO] Setting property: velocimacro.messages.on => 'false'.
[INFO] Setting property: resource.loader => 'classpath'.
[INFO] Setting property: resource.manager.logwhenfound => 'false'.
[INFO] [archetype:generate {execution: default-cli}]
[INFO] Generating project in Batch mode
[INFO] Archetype defined by properties
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] The defined artifact is not an archetype
[INFO] ------------------------------------------------------------------------
[INFO] Trace
org.apache.maven.BuildFailureException: The defined artifact is not an archetype

at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(Defa
ultLifecycleExecutor.java:715)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandalone
Goal(DefaultLifecycleExecutor.java:569)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(Defau
ltLifecycleExecutor.java:539)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHan
dleFailures(DefaultLifecycleExecutor.java:387)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegmen
ts(DefaultLifecycleExecutor.java:284)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLi
fecycleExecutor.java:180)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)
at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:6
0)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)

at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
Caused by: org.apache.maven.plugin.MojoFailureException: The defined artifact is
not an archetype
at org.apache.maven.archetype.mojos.CreateProjectFromArchetypeMojo.execu
te(CreateProjectFromArchetypeMojo.java:201)
at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPlugi
nManager.java:490)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(Defa
ultLifecycleExecutor.java:694)
... 17 more
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2 seconds
[INFO] Finished at: Tue Mar 30 11:08:59 CEST 2010
[INFO] Final Memory: 8M/15M
[INFO] ------------------------------------------------------------------------

リポジトリが悪い可能性があるため、-Darchetyperepository を c:.m2 epository に変更しましたが、これもまた別のことを完了するのにひどく失敗します。

この投稿がより洞察力に富んだものになることを願っています。

すべてをありがとう:)ランダム

編集:はい、新しいデータです。これがアーキタイプではないように見える理由を調査していることはわかっていますが、 mvn Archetype:generate -DarchetypeCatalog=local にはアーキタイプが 0 個あるようです。したがって、インストールされていないようです。mvn install と mvn Archetype:crawl を実行しましたが、機能しません。独自のアーキタイプをインストールできない理由はありますか?再度、感謝します :)

再度編集します:ローカルアーキタイプの問題が解決されたので、archetype-catalog.xml を ~/.m2/repository/ から ~/.m2/ に移動する必要がありました。すると、Maven がローカルアーキタイプを見つけてくれました。奇妙なことに、それでも同じエラーが発生します。アーキタイプ リポジトリとベース ディレクトリも変更しました。

最終編集 (そう願っています!):さて、ついにエラーを見つけました。あまりにも愚かなことなので、書き留めるのが恥ずかしいです(これを知ってから3日が経ちました)。私のarchetypeArtifactIdとarchetypeGroupIdが交換されました(つまり、一方が他方でした)。正しいパラメーター (archetype-catalog.xml で定義されていますが、それでも正しい場所に移動する必要がありました) を渡し始めると、不思議なことが起こり始めました。読んだり書いたりしたすべての人々にも感謝します:)

これは推測です...メッセージ:
「ビルドの失敗 - 定義されたアーティファクトはアーキタイプではありません」で問題が説明されています。

Maven ビルドが Web アプリから受け取っているものはアーキタイプではないのではないかと思います。
Web ブラウザで Web アプリが提供するアーキタイプ URL を指定してみてください。次のようになります。 これ.

そうでない場合は、Web アプリが結果の XML をビュー テンプレートとして処理しようとしていないこと、および XML が正しい MIME タイプで HttpResponse にストリーミングされていることを確認してください。
また、アーキタイプ リソースが web.xml 内のセキュリティ定義によって保護されていないことも確認してください。

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