2017-02-16 12 views
0

私たちのプロジェクトは、java、sql、pascalという異なる言語を使用する比較的小さなコンポーネントから構築されています。各コンポーネントは、だから我々は決してJavaプロジェクトのレイアウト - それは簡単なことができますか?

  • ミックスプログラミング言語
  • ミックス機能

ほとんどの新しいコンポーネントは、いくつかのJavaのレガシーコンポーネントは非常に使い、maven structureを使用し、独自のリポジトリと、独自の関数スコープ

を持っています単純な構造では、 "src"と "test"フォルダしかなく、リソースファイルはjavaファイルの近くに置かれます。そしてそれは非常にconvinientであることが判明!私は何かを欠いているかもしれない?

質問 - 私は上記の事情のために、根拠何で、推奨Mavenの構造を持っているために、なぜ単に:

  • [ "SRC /メイン/ javaの"、 "SRC /メイン/リソース"] => "SRC"
  • [ "SRC /試験/ジャワ"、 "SRC /テスト/リソース" => "テスト"

文献。またWhy are project layout resources are kept separate from Java sources?

+1

あなたが実際に参照する質問は、スタックオーバーフローに関するトピックではありません。これは、あなたにも明確な回答がないことを示すはずです。基本的に、あなたが喜んでください。 Mavenを使用する必要がある場合は、そのルールに従う必要があります。そうしないと、あなたの組織に便利なことをしてください。 – RealSkeptic

+1

Mavenはあなた自身のディレクトリレイアウトを使用することを妨げません。あなたの意見は何でもできます。この質問は意見ベースの回答につながる – Redlab

+0

このシナリオでは、グラデルやアイビーがうまく収まらないのだろうか?私がmavenを使うと、私はmavenレイアウトに固執するでしょう。私が言及したオプションを見て、あなたのコードベースに適しているかどうかを見てください。 – MrSimpleMind

答えて

1

"Convention Over Configuration"これはMavenのコアデザインコンセプトです。私の意見では、それは単なるルールと標準です。 HTTPプロトコルがあるため、IEやFirefoxなどの別のブラウザを選択できます。最も重要な理由は、表記法を使用すると構成を大幅に削減できることです。レガシーコードを扱っている場合、Antのような独自のファイルディレクトリをmavenに定義することもできます。元のディレクトリ構造を変更してMavenを妥協させることはできません。しかしそれとは別に、あなたはそうする必要はありません["src/main/java"、 "src/main/resources"] => "src"は、単にコミュニケーションを引き起こす可能性があるため、問題は、あなたに加えて、他の人はなぜそうするのか分からない。IEの互換性の問題など、それはひどいです。

<project> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.*.maven</groupId> 
    <artifactId>maven</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <build> 
     <!-- This told maven that the source is in src/java, no src/main/java --> 
     <sourceDirectory>src/java</sourceDirectory> 
    </build> 
</project> 
+0

構造を単純化すれば開発がより複雑になり、単純化する理由はない。それは私が合理的な議論と呼ぶものです。しかし私の実践では、ソースから別に保管されているJavaファイルのリソースを扱うために、より多くの努力が必要です。 –

0

私自身の答えです。我々は一つの成分(1つのVCSレポジトリ)、例に言語と機能を混在させると、スタンダールMavenの構造が必要とされている。これらのscenariousこのような構造で

されます確かに役立つ、その機能は、異なるツールによって異なって処理されるファイルを分離することです。

そうでない場合は、より単純な構造を使用することができます。

+0

5つの異なる言語を使用していても、好きな場合はすべて同じディレクトリに置くことができます。 Gradle eでg。あなたは何のために何を含めるべきかのパターンを簡単に定義することができます。 g。 Javaソースファイルとして 'src/**/*。java'をC++ファイルとして' src/**/*。cpp'ファイルにします。ファイルのレイアウト方法はあなた次第です。 GradleはデフォルトでMavenの推奨されている構造に従っています。Mavenから来る多くの人がそれに慣れており、MavenからGradleへの切り替えも簡単です。 – Vampire

+0

「あなたのファイルをどのようにレイアウトするかはあなた次第です」 - もちろん!しかし、私は、特定の構造に従う合理的な理由もあると思います。 –

1

あなたのプロジェクト/コンポーネントの仕様を知らなくても、あなたの質問に答えることは難しいです。

私の提案がされる

あなたが任意の追加などの設定ファイルなどのファイル(つまり、ロガー設定ファイル、データベース設定ファイルなど)、リソース(画像、文書テンプレートなど)を持っている場合は、Mavenの推奨構造で行きますこれらのファイルをリソースの下に置くようにしてください。 それはあなたを作るでしょう

もしあなたがそれらのファイルのようなものを持っていない場合は、あなたの簡単な構造にしてください。

+0

同意する、これはかなり妥当である –

関連する問題