Maven-プロジェクトアセンブリの自動化

長い間、プロジェクトのアセンブリを自動化するためのツールであるAntについて聞いていましたが、どういうわけか彼にPHPのプロジェクトで実際のアプリケーションを見つけることができませんでした。 何もコンパイルする必要はないようです。外部ライブラリはsvn:externals



を介して接続できます。 $ phpunit AllTests.php



を介して自由に実行されるテストのみがあり、変更は$ phpunit AllTests.php



サーバーに転送されました( svn export



+小さなスクリプト)。 eclipseでのantの使用に関するかなり良い記事でさえ、このツールの使用を勧めませんでした。ビルドファイルを書きたくありませんでした...



いつものようにVobschemすべて。 そのようなものは痛くないように思えますが、すべてが非常にうまく機能し、疑似支援技術を研究するにはあまりにも面倒でした。 それは私がJavaに会うまででした...





私の人生にJavaが登場したことで、自動ビルダーを使用するかどうかという問題は、それ自体では使用できなくなりました。 結局のところ、どのフリークがすべてのプロジェクトディレクトリのすべてのファイルを手動でコンパイルし、それらをサーブレットコンテナディレクトリに展開するためにコピーしますか? 非常に忍耐強く、怠け者ではありません。 しかし、怠は進歩のエンジンであり、私は... mavenについて読み始めました。



彼がどうやって私に出会ったのかさえ知りません。 おそらく、Tomcatの基本を学習する過程でGoogleに依頼した後、このプログラムの存在についての知識を得ました。 これは、最初のJavaプロジェクトをデプロイするために必要なApacheの4番目の製品です。



Mavenはantの機能(ファイルのビルドとコピー、テストの実施)を組み合わせていますが、さらにプロジェクトライブラリの依存関係の解決に役立ち、非常に正式なライフサイクルを持ち、多くのプラグインを持ち、コマンドラインで同じ3文字をすべて使用します: mvn



vs ant







Mavenのライフサイクルは非常に期待されています。





この場合、すべての手順に一貫性があります。 また、たとえば、 $ mvn package



を実行すると、検証、コンパイル、テスト、パッケージ化の各ステップが実際に完了します。 したがって、mavenの使用は非常に簡単です。 コードを作成し、mvnテストを実行しました。コードに構文エラーや論理エラーが含まれていないことを確認しながら、作業を続行できます。



それとは別に、依存関係について言及する価値があります。 Mavenはpom.xmlファイルによって構成されます。このファイルには<dependencies />ブロックを含めることができます。 プロジェクトが完全に機能するために必要なライブラリについて説明します。 検証ステップで、Mavenは依存関係が満たされているかどうかを確認し、満たされていない場合は、リモートリポジトリからローカルリポジトリに必要なコンポーネントをダウンロードします。 したがって、10個のプロジェクトが同じSomeSpecificOrmライブラリに依存している場合、特にライブラリが十分なスペースを占有する場合は、 svn:external



を介して10箇所で接続する必要はありません。依存ファイルで指定するだけで、ローカルから取得されますMavenリポジトリ。 依存関係を指定する場合、ライブラリの名前だけでなく、そのバージョンも指定できます-このように、後方互換性に問題はありません。



次に、「Web開発でMavenはどのように役立つか」という質問に直接進みます。 コンパイル、テスト、パッケージ化に加えて、mavenではtomcat-maven-plugin



を使用してプロジェクトをtomcatにデプロイできます。 これはpom.xmlで構成され、おおよそ次の形式になります。



 [...]
 <プラグイン>
     <プラグイン>
    	 <groupid> org.codehaus.mojo </ groupid>
    	 <artifactid> tomcat-maven-plugin </ artifactid>
    	 <バージョン> 1.0-beta-1 </バージョン>
    	 <構成>
    	     <パス> / </パス>
    	     <url> http://site.local:8080 /マネージャー</ url>
    	     <server> site.local </ server>
    	 </構成>
     </ plugin>
 </ plugins>
 [...]


設定には少し説明が必要です。 そのため、pathは、サーブレットがデプロイされるパスを担当します。 本格的な自給自足のWebアプリケーションをデプロイしているため、/にデプロイします。 Url



は、デプロイするホストマネージャーへのパスを指します。 通常、マネージャサーブレットは、 新しい仮想ホストの作成中に作成されますServer



はサーバーIDを示します。 ここでは、説明をさらに深くする必要があります...



ホストマネージャーを介した展開の場合、承認を行う必要があり、構成ファイルでのログイン情報の指定は正しい決定ではありません。データはサーバーごとに変更できるため、idによるポインターが使用されます。 承認データ自体は、 servers



セクションの~/.m2/settings.xml



ファイルで構成されservers



。 したがって、私のセクションは次のようになります。



 [...]
 <サーバー>
     <サーバー>
         <id> site.local </ id>
         <username>マネージャー</ username>
         <password>マネージャー</ password>
     </ server>
 </ servers>
 [...]


username



password



は、 tomcat-users.xml



管理者権限を持つユーザーと一致password



必要がありtomcat-users.xml



サーブレットに関する以前の記事を参照 )。



これで、プロジェクトをサーブレットコンテナに送信するには、実行するだけで十分です。 $ mvn tomcat:deploy



とmaven自体が、プロジェクトのコンパイル、テスト、パッケージ化、およびデプロイを処理します。 あとは、ブラウザページを更新して変更を確認するだけです。



はい 結論として、mavenはディレクトリの階層も決定しますが、手動で作成しないためには、それで十分です。



 $ mvnアーキタイプ:作成\
   -DarchetypeGroupId = org.apache.maven.archetypes \
   -DgroupId = com.mycompany.app \
   -DartifactId = my-app


また、Eclipseには、プロジェクトの作成と保守を簡素化する特別なプラグインがあります。



PSIは資料が完全に開示されていないことを理解しているため、一部のポイントが完全に不明瞭または単に完全ではない場合は、執筆してください。記事を補足します。



元の記事の PPSにはまだ小さな調査があり、ほとんどの場合、PHP開発者が参加するように招待され、残りは関心によって




All Articles