質問

私はMavenの2のすべての時間と苦労のは本当に疲れています。ビルド・ツールは、方法であってはなりません。最近、私はBuildrとGradleのを見てきました。 Mavenの3は、闘争の一部を修正しているようです。だから、私は今のところ何を行くべき? Buildr? Gradleの?やMaven 3年を待つのか?

役に立ちましたか?

解決

いいえビルドシステムは特効薬ではありません。私はMavenのは、それが私のために原因よりも多くの問題を解決見つけたが、私はその欠点ラウンドを取得するために非常に快適書き込みプラグインですMavenの継承と依存処理は私にとって非常に便利ですので、私はまた、プロジェクトの数百に対処します。

SOビットを閲覧し、あなたはBuildrとGradleの両方が、一般的にあなたがお互いのために問題のセットと、少なくとも苦痛を見つけるそのケースを取引している、あまりにも(同じAntとアイビーのための)問題を持って表示されます。

のMavenについてのあなたを悩ませたり、それが一般的なかゆみです特に何かはありますか?それは特に問題である場合は、問題かどうかは、のMavenのJIRA の上3つの問題を見て価値があります対処されていない、あなたはそれを上げることができ、または他のあなたが待っているに少しポイントがあるかもしれません。

他のヒント

私はMavenの3からあまり期待していないビルドツールのMavenの血統の背後にある人々は、常にプロジェクトのビルドという仮定を開催している均一で、それは次のとおりです。すべて基本的に同じ問題に煮詰める問題を構築します。世界のこのビューには、反対意見の顔にかなり一貫して開催されたが、コストがかかりますすることができます。 Mavenの中のスクリプトロジック(「あなたはスクリプトにしたいとき、あなたはあなたが何か間違ったことをやっている知っている」)、面倒なプラグインAPI(「普通のMavenユーザーがプラグインを書きたいてはならない」)と、中央リポジトリ(「我々の不在すべては「同じ依存関係を持っている)すべてのこの包括的仮定の遺言です。

現実の世界ではビルドの問題を人々が理由の多種多様なソフトウェアを構築するために不均一です。彼らはすべてのユニークな問題を解決するためたまに私たちすべての「ドリル穴」のような「開発します」。任意のビルドの問題を比較する際に関係なく、抽象化のレベルのあなたはいつもの類似点を見つけることができます。これは、これらの類似のreverationとMavenのデザインと、それはそんなに非難を描く理由のために没落で違いの非難です。基本的には、Mavenはその見通しの権威とユートピアです。

PS:Mavenのが慣例オーバーの設定やリポジトリを使用してのアイデアのような良い機能を持っている(このアイデアのMavenの実装が面倒である)

ここではMavenを使用しますが、私はあなたが単純なプロジェクトの外で得れば、のpom.xmlがますます複雑を取得するために開始することを見つけます。あなたは一体であなたがやりたいためにあなたのポンポンを設定するには、どのように様々な問題を回避する方法を見つける作業に多くの時間を費やし始めます。

本当に私を得た事は、我々が構築している耳でした。私たちは、そのEARファイルに複数の戦争があり、Mavenは通常戦争でライブラリをスティック。しかし、戦争のサイズを小さくするために、すべて同じjarを保つために、私たちは耳のlibディレクトリに戦争の間で共有jarを入れたいと思っています。

残念ながら、Mavenは非常によくこれを処理しません。私たちは、手動での戦争POMSのそれぞれに対してこれを設定して、耳のPOMの中にこれらの依存関係のすべてを追加する必要がありました。

別のプロジェクトでは、HTMLベースのヘルプファイルを持っています。助けを書く人は、HTMLにそれらを変換するプログラムを使用するMicrosoft Wordでそれらを書きます。単一文字の変更は数百のファイル全体で反響することができます。

この問題を回避するには、私たちのヘルプシステムは、単一のZIPファイルとして私達のソースリポジトリに格納されます。私たちのドキュメントチームは、ヘルプファイルの新しいセットを作成するとき、彼らはそれを圧縮し、リポジトリにあるものを置き換えます。

だから、私のビルドの一部は、このファイルを解凍し、戦争に置くれます。あなたはMavenのは、本格的なプラグインなしで扱うことができない問題を処理するためのAntのコードを書くことができますAntrunプラグインを使用しない限り、Antの中で行うのは簡単、Mavenの中でそれを行うことはできません。

私は、Mavenのが何をしているか見ることができますが、理論的には、先に現実のです。私が見つけたアイビーとAntは、Mavenのは、POMSを書いて維持するすべての問題もなくないことを確認し、依存関係のほとんどを行うことができるということです。

をすでにMavenを使用していない場合は、最初のアイビーでのAntを試してみてください。 Mavenの3が出てきたときに、その後、それを試してみてください。私は、彼らがお互いに完全に互換性がありませんでしたし、何でもあなたはMavenの1が廃止された使用して学んだのMaven 2へのMaven 1からの移行を覚えています。突然、自分がMavenの3のためにすべてをやり直し見つけるために、Mavenの2でプロジェクトを学習し、やり直すこと愚かなことでしょう。

Mavenの3.xのは、既にのIDEに埋め込まれているの(少なくともNetBeansの上に、チェックは、よりinfomrationため、このリンクする)。あなたはMavenの3.xのは、単にのNetBeansとMavenプロジェクトをビルドして、今日を再生することができます。

もう一つの素晴らしいニュースは、Mavenのは(少なくともNetBeansの上で、再び)IDEプロジェクトにEJB / WSを統合することで、より「企業の支援を得たことである。

だから私は、生産のための2.xのビルドをしMavenと開発のためのMaven 3.xのと遊ぶのが固執するでしょう。

Mavenの2と3は、両方のプロジェクトのさまざまな私のために完璧に取り組んできました。私は現在、特にEclipseのMavenプラグインと連携して、非常にうまく機能のMaven 3アルファ7を使用しています。

MavenはAntのとシームレスに統合 - 両方向に。私の現在のプロジェクトでは、我々は複雑な統合テストを実行するために、Antの複数回からMavenを起動します。同様に、私たちは、MavenのAntRunプラグイン経由でのAntを使用して、我々はまた、私たち自身のMavenプラグインを書きました。これは、方法によって、ものの数分で、注釈付きのPOJOを書くことに沸くます。

多くの開発者がルールや規則を好きではないので、

Mavenは非難の多くを取得します。簡単に言えば、誰もあなたがMavenを使用するように強制しません。任意の手段によって - - あなたは究極の自由をしたい場合は、参加するすべてのプロジェクトのために、独自のビルドプロセスを再書き込み。しかし、あなたがソフトウェアを作成するのではなく、すべてのプロジェクトにカスタムメイドのビルドプロセスを持つホイールを再発明し、Mavenのために行くのが好きならば。

も明確に定義されたモジュールに維持し、壊れたあなたのコードを維持し、ビルドシステム間での移植はマイナーな問題となります。

今については、Mavenの-2は、プロジェクトの途中2 /第三のために良い選択です。本当に簡単のために、アリはまだ大丈夫です。本当に複雑なために、Mavenの-2および(antrunのような)他のツールとのハイブリッドは避けられません。

なぜあなたはMavenの-2との問題を抱えている

わかりません。

これはアリとは異なり、それをスクリプトではない、ビルドプロセスを説明するためのツールであることをbuildr。複雑なビルド、彼らが説明するのは難しいですので、複数の動的な部分と、ネストされたおよび/または一過性の依存性を持つものが構築するのは難しいです。

格子 https://github.com/hackingspirit/Lattice に試してみて。私は著者です。ここでスクープがあります:

格子中のファイルをビルドしないXMLではなく、Python言語で書かれています。ベンゾefitsは、Pythonでサポートされている非常に読みやすくかつ強力不可欠ビルドスクリプトです。 マルチモジュールプロジェクトの場合。ラティスは、各モジュールを構築するための正しい順序を決定するトポロジカルソートを使用しています。また、ラティスは、モジュールのコンパイルを並列化できる方法を決定するためにモジュールの依存関係を分析することを計画しています。 ラティスのソースコードは、現在、それはPythonのソースコードの約500行で構成され、非常に無駄のです。

私は、Mavenの不満の人々が利用可能なプラグインを調査して少し余分な時間を費やすべきだと思います。 Mavenのは、剛性であり、それはハードビルドプロセスをきめ細かく制御を提供/ロジックを構築するカスタム使用できるようになりますことを訴えて、コメントを受けて - 私は、MavenのためのAntプラグインに探してお勧めします(そこにいくつかは実際にはありますが、ここでは一つです: http://maven.apache.org/plugins/maven-antrun-plugin)。私は、Mavenのは、長年にわたってそれを構築し、カスタマイズ大きな成功を収めています。基本的に、それはあなたがMavenのビルドの一部としてのAntコマンドを実行することができます、そしてあなたはアリとほとんど何もすることができます;)

アイビーとAntは同じ依存性管理Mavenはなく、すべてのPOMの設定混乱せずに、(実際には、それは同じURLリポジトリなど、Mavenの全体の依存関係の管理インフラストラクチャを使用しています)しない。

アイビーとAntは本当にMavenを使用したくない人のための依存関係の問題を処理する方法かもしれません。それは、Mavenのは、解決するために仮定されたものの90%を解決します。

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