5

Spring Rooは、標準の Maven レイアウトに従う既存のプロジェクトで使用できます。これまでのところ、これは Maven を使用しないプロジェクトは運が悪いことを意味しているようです。

そのような既存のプロジェクトのオプションは(もしあれば)何なのか疑問に思っています。

Maven レイアウトに合わせてプロジェクト レイアウトを再配置しますか? これは、CVS でディレクトリを移動する方法が非常に侵襲的であるという事実により、CVS で長年の歴史を持つプロジェクトにとって非常に難しい道のようです。

非標準レイアウトで動作するように Maven 構成を変更するなど、他のオプションはありますか? このテーマについて以前読んだことから思い出すのは、Maven のCoCアプローチは、このような非標準のレイアウトを好まないということです。

編集:

以下の Rich の回答は、super-pom でデフォルトをオーバーライドすることは簡単であることを示しています。そのため、Spring Roo がこのような変更をうまく処理できるかどうかという疑問が残ります。Spring Roo が Maven 自体を使用していないという事実を考えると、これは疑わしいことです。

編集:

Rich の更新された回答は、デフォルトでは、ROO がハードコードされたパスを使用し、pom.xml の変更を選択しないことを示しています。いくつかのカスタム コーディング (または ROO チームにこれをサポートするよう依頼する)

4

3 に答える 3

2

別の規則セットを使用するように Maven を変更できます。標準セットはMaven スーパー POMから継承され、関連するプロパティを再定義することでオーバーライドできます。

たとえば、sources ディレクトリを src/main/java から src に、test ディレクトリを test-src に、resources ディレクトリを src/main/resources から resources に変更するには、POM で次のように設定します。

<build>
  <sourceDirectory>src</sourceDirectory>
  <testSourceDirectory>test-src</testSourceDirectory>
  <resources>
    <resource>
      <directory>resources</directory>
    </resource>
  </resources>
</build>

いくつかのプラグインは、標準プロパティを使用して場所にアクセスしない場合があることに注意してください (たとえば、${project.build.outputDirectory} を使用する代わりにターゲット/クラスをハードコーディングするため、奇妙な問題が発生する可能性があります)。


更新: Roo は現在、これらのプロパティをハードコーディングしているようです。MavenPathResolver を置き換えるか、追加のリゾルバーを追加して、カスタム プロパティを使用できる場合があります。

これが実際の問題である場合は、カスタムの場所を許可するように変更された MavenPathResolver を取得するリクエストを発行できます。

于 2009-08-05T08:01:05.593 に答える
2

私たち (Roo チーム) が MavenPathResolver でカスタム パスの使用を許可できない理由はありません。PathResolver 抽象化を作成した意図的な理由の 1 つは、Maven のデフォルト以外の場所だけでなく、共通のパスの場所のカスタマイズをサポートすることでした。 Ant+Ivy などの他のビルド システム。すべての基本 Roo アドオンは PathResolver を使用するように作成されているため、これをサポートするための大きな努力は必要ありません。このサポートが引き続き必要な場合は、 Roo Jira インスタンスに拡張リクエストを追加してください。

于 2010-01-08T21:02:38.037 に答える
1

Roo 1.2 の時点では実装されていません。

于 2012-01-18T08:12:51.160 に答える