2011-01-04 16 views
3

私は私のプロジェクトをつかむと、を経由して、それから原型を生成しようとしている:プロジェクトからのMavenのアーキタイプ - パッケージ名を保持する方法?

archetype:create-from-project 

の事私のプロジェクトは、SRC /メイン/ javaのパッケージ構造com.sample.appを持っていますが、原型をしなければならないこと、ですアーキタイプからプロジェクトを生成するときにユーザーが望むようにしますが、それは不可能です。 groupIdとartifactIdを取得してこの入力に基づいてarchetype-resources/src/main/javaを生成するとは思われません。

とにかく、私が思うこの引数がある理由です:のpackageName

mvn archetype:create-from-project -DpackageName=com.sample.app 

しかし、それは動作しないとarchetype-resources/src/main/java/org/sample/appがまだ..です

答えて

4

create-from-project目標は、通常、自動的に基本パッケージ名を検出し、置き換えられたので、 \templateproject\target\generated-sources\archetype\src\main\resources\archetype-resources\src\test\java\Foo.javaのパッケージ宣言で、${package}

とすると、archetypeプラグインとほぼ空のhello-worldプロジェクトを使ってcreate-from-projectを実行すると、生成されたアーキタイプにパッケージが削除されていることがわかります。このようにして、archetype:generateを使用するユーザーは、生成時にパッケージ名を指定できます。

+1

私が使用したarchetype-pluginの最初のバージョンで何が起こったのか、パッケージ構造を抽出しました。ユーザーとして入力してgroupIdとartifactIdを生成すると、パッケージ構造が生成されます。しかし、何も起こらなかった...そして、私は最も新鮮なプラグインを使用し、プロジェクトからアーキタイプを作成するときにベースパッケージ構造を削除しなかった...これは開発の一種であり、これはMojoのソースコードです:private String packageName; //パッケージを解決するより良い方法を見つける!!!コンフィグレータ – lisak

+0

の使用を強制してください。Maven Pluginのバージョンによって異なります。あなたはどちらを使っていますか? – mhaller

+0

まず、バージョンを指定せずに2.0-alpha-6-SNAPSHOTを指定したときに提供されるデフォルトのものです。最後に、2.0-alpha-4で動作させました...しかし、悲しい点は、私は理由は分かっていません:-)しかし、多くのありがとうmhaller、あなたは私に正しい方向を指摘しました – lisak

関連する問題