2009-11-21 3 views
9

私は新しいプロジェクトを開始しています。私はMavenを初めて使うつもりです。以前のスレッドを読んでから、Mavenが好きな人は私に納得してもらえました...しかしは嫌いです Mavenは地雷に乗ったようですが、もっと詳しく知りたいです。新しいMavenプロジェクトを開始する際に避けるべき地雷はありますか?

私はMavenの次の規則に縛られるようです。それは控えめなものですか?他に何かありますか?

※これは中規模、中規模の複雑なプロジェクトです。私の球場は10k行のコードとなり、生涯で100k以上に成長しません。 (私は大きなは> 500Kであることを検討したい、と小さな< 10K、FWIWする)。*

はい、私はMavenを使用しています。落とし穴が "Maven"の場合、他の詳細はなく、返信に帯域幅が無駄になります。

+0

あなたのプロジェクトにはどんな側面がありますか?それは単純なJavaプロジェクトですか、それとも別のものがありますか?そうすれば、この質問に簡単に答えることができます。 –

+0

私はこれで恐ろしい気がしますが、私は本当にこれに "Maven"という1つの単語の回答を投稿したいと思います。 – Esko

+0

私はEskoに同意します。 "Maven"は避けるべき最大の地雷です。 –

答えて

7

実際、Mavenの考え方に従い、その規則に従っていると、それを守らないと物事が複雑になるため、良い考えです。

しかし、Mavenには少しの学習曲線があり、Mavenのドキュメントは必ずしもそれほど良いものではないので(これはおそらく最大の地雷です)、哲学を1つの答えにまとめるのは難しいようです。私の助言は実際に本(または2つ)をつかんで本のようにすることです。どちらを選択するかわからない場合は、this pageをご覧ください。私の意見では、Maven: The Definitive GuideBetter Builds with Mavenは間違いなく良い読書であり、オンラインで利用可能です。しかし、後でApache Maven 2: Effective ImplementationがBrett Porterによって共著されたものは良いものでなければなりません。私はそれを読まなかっただけです。

あなたが始めたら、躊躇しないで適切な道を進むために特定のトピックに関するアドバイス、指導、指導を依頼してください。 maven user listがこれに適しています。ここでStackOverflowで質問することもできます:)たとえば、マルチモジュールビルドの構成方法は、最初のトピックの1つかもしれません。しかし、詳細がなければ、今は答えが不可能です。

+0

私は比較的不利な本です。私は、本を読んで学んだよりもはるかに多くのことをやって文書を読んで学びました。あなたがそれらのうちの1つ*を提案しようとしていたら、それはどれですか? –

+0

本の有無にかかわらず、実際には学習する唯一の方法です...ここでの問題は、Mavenのマニュアルが必ずしも十分ではないということです。そして、多くの場合、mavenを使って何かを行うためのソリューションが複数あるので、私は本を始めるには良い仲間だと思います(それはあなたが正しいものを選ぶのを助けるでしょう)。 * Maven:The Definitive Guide *(m2eclipseプラグインをインストールすると、オンラインまたはeclipseから利用可能)から始めます。 –

6

ご住所にnexus repositoryを設定することをおすすめします。これは無料で、非Mavenリポジトリ・ジャーを統合し、ローカルにキャッシュして新しい環境の設定パフォーマンスを向上させるのに役立ちます。

+0

+1 ..またライセンスを持っているjmxtoolsのような瓶を置く。 – Bozho

+1

以前はNexusについて聞いたことがありませんでした。 +1、それは完璧に見えます。 –

2

私のprior answerグループワイドレポを設定すると、参考になるかもしれません。同様にthis on splitting up projects

  • 親POMS
  • は、できるだけ長く、できるだけ平易として滞在してみMultimodules

    1

    することなど、あなたが本当に必要としない空想の機能を、使用しないでください。 。非常に早い段階でリリースサイクルをプレイします。 0.0.1バージョンのリリースを実行します。それを自動化する。

    複雑な設定(たとえばEclipse + m2eclipse + WTP +のアスペクト)を使用している場合は、いくつかの不具合に備えて、各ツールが設定、一時ファイルなどをどこに格納しているかを知っておく必要がある場合は、 。スナップショットの依存関係がキャッシングなどのために更新されていないことを知るためには、「すべてがやっている」と思っているとかなりの時間が失われる可能性があります。

    +1

    親POM、マルチモジュール、ファンシー?真剣ですか?私はあなたが本当にこれを信じている場合、あなたはそれらを使用することを避けることはできません(そうする必要はありません)ので、その場合はMavenを使用しないでください。 –

    +0

    必要があれば使用してください。どのような依存関係も持た​​ないスタンドアロンのプロジェクトのために、気をつけている親のpomを作成する人がいます。それはなぜですか?継承は過大評価されており、思考せずにあまりにも頻繁に使用されています。 – mhaller

    +0

    @mhaller、あなたは3/4の権利です。親ポンを過度に使用する傾向はありますが、マルチモジュールを使用していない傾向があります。同じマルチモジュールプロジェクトで一緒にデプロイするコンポーネントをグループ化することは、多くの利点があります。そうしているときに、そのMMプロジェクトの単一のコンポーネントを使用する能力を滅ぼすことはめったにありません。 – sal

    0

    「Maven」という言葉では、Mavenのコアと、Mavenチームや他の人が開発したプラグインの束を考えています。 Mavenの世界では完全ではないものがあります:それは一般的に使用されるライブラリである場合、大きな混乱を引き起こす、ユーザーのPOMSとサードパーティベンダーのPOMSにおける一般的なミスにつながる、依存関係のスコープを理解することが

    • 難しく、いくつかの成果物の利用可能性との依存性における範囲の
    • 乱用、
    • 彼らはMavenのリポジトリに配置される前に、サードパーティのライブラリをverifing POMSの弱いシステム、
    • なく、いくつかのプラグインの十分な品質、
    • 問題、特にからサンライセンス制限ations)

    Mavenを使用する心理的側面もあります。 Mavenへの日々の作業切り替えでAntを使用する人にとっては、特にHelloWorld以外のプロジェクトでは困難です。他の人はMavenの初期の段階から、良いドキュメンテーション、書籍、およびより少ないプラグインのセットがないときに悪い経験をしています。これらの人々のためにAntでのプロジェクトは簡単でした。一部の人々がMavenを好まない最後の理由は無知です。

    私はパスカルに同意します"そんなに多くの人が盲目的に間違っているかもしれません"。私は今日のMavenのないJavaの世界を想像することはできません。

    関連する問題