なぜmaven-2を使いますか?
本文は前の一枚に続いて、マヴェンの学習ノートを記録します.http://jackycheng2007.iteye.com/blog/923791
[/url]
法宝2.POMプロジェクトの対象モデル-継続
プロジェクト引き継ぎ
前に述べましたが、プロジェクトはマベンゼンではobjectと見なされています.この機能はとても役立ちます.私たちのプロジェクトのprofileも再利用できるようになります.考えてみてください.もし似たようなプロジェクトがたくさんあったら、たとえばssh開発の一連のプロジェクトを採用して、あなたの各プロジェクトのpomの中には必ず重複する部分がたくさんあります.継承があれば、これらの共用部分を抽出して、各サブプロジェクトを引き継ぎ、再利用の目的を達成することができます.本来なら、継承はis-aの関係を反映しています.supperプロジェクトの下のサブプロジェクトは生まれつきsupperプロジェクトとis-aの関係があります.このように同じく乱用して継承したとは言えなくて、はは.
どのように継承しますか
前の記事の最後の例に続き、彼の下にサブモジュールがあれば、それを引き継ぐ必要がある:
<groupId>comp.mycompany.apサブモジュールはどうやってsupperのpomを見つけますか?
はい、supperプロジェクトがすでにlocalのrepositoryにインストールされていたり、supperのpomが予約されたディレクトリ、つまりサブモジュールの上のレベルのディレクトリ(以下のように)すればいいです.
参照
my-app|--my-module
| `-- pom.xml
`-- pom.xml
もし、あいにくなら、この二つは全部ではないですか?たとえば:
参照
...
|--my-module
𞓜 `-- pom.xml
`--parent
`-- pom.xml
私たちは自分で席を指定できます.
プロジェクト継承により、サブプロジェクトを再管理または構築する際には、parentプロジェクトのpomを利用することができます.逆に?もし完全なプロジェクトを構築するなら、多くのサブプロジェクトをまとめて包装する必要がありますか?Project Agregationはこの問題を解決したのです.
どうしますか?2点を満たす必要があります
参照
親プロジェクトのpomの中のpackagingの値は「pom」とします.
親プロジェクトのpomにサブプロジェクトのカタログを作成します.
もし私たちがmy-moduleをmy-apに集めたいなら、次のように修正します.
Project Interpolation and Varables-使用変数
pomでは、パスなど、同じ文字列のセグメントを複数の場所で使用することができます.変数の声明と引用をサポートすることで、ハードコードを防ぐことができます.
変数はどのように参照しますか?下を見てください
どのような変数がありますか?
Project Model Varables
pom内のどの単一の値の要素も変数として参照できます.
参照
$project.groupId、$project.version、{project.build.sourceDirectory}
Special Varables
$basedir、現在のプロジェクトの所在ディレクトリ
$project.baseUri、現在のプロジェクトの所在ディレクトリURI.Since Maven 2.1.0
$maven.build.timestamp、プロジェクトのbuildの開始時間.Since Maven 2.10-M 1
Propties
pomで定義されているProptiesを変数として参照することもできます.
[/url]
法宝2.POMプロジェクトの対象モデル-継続
プロジェクト引き継ぎ
前に述べましたが、プロジェクトはマベンゼンではobjectと見なされています.この機能はとても役立ちます.私たちのプロジェクトのprofileも再利用できるようになります.考えてみてください.もし似たようなプロジェクトがたくさんあったら、たとえばssh開発の一連のプロジェクトを採用して、あなたの各プロジェクトのpomの中には必ず重複する部分がたくさんあります.継承があれば、これらの共用部分を抽出して、各サブプロジェクトを引き継ぎ、再利用の目的を達成することができます.本来なら、継承はis-aの関係を反映しています.supperプロジェクトの下のサブプロジェクトは生まれつきsupperプロジェクトとis-aの関係があります.このように同じく乱用して継承したとは言えなくて、はは.
どのように継承しますか
前の記事の最後の例に続き、彼の下にサブモジュールがあれば、それを引き継ぐ必要がある:
<project>
<parent>
<groupId>com.mycompany.app</groupId>
<artifactId>my-app</artifactId>
<version>1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>my-module</artifactId>
</project>
このサブモジュールは親モジュールのgroupidやversionなどの情報を引き継いでいます.ちょっと待ってください.ここに問題があります.証拠になる<groupId>comp.mycompany.apサブモジュールはどうやってsupperのpomを見つけますか?
はい、supperプロジェクトがすでにlocalのrepositoryにインストールされていたり、supperのpomが予約されたディレクトリ、つまりサブモジュールの上のレベルのディレクトリ(以下のように)すればいいです.
参照
my-app|--my-module
| `-- pom.xml
`-- pom.xml
もし、あいにくなら、この二つは全部ではないですか?たとえば:
参照
...
|--my-module
𞓜 `-- pom.xml
`--parent
`-- pom.xml
私たちは自分で席を指定できます.
<project>
<parent>
<groupId>com.mycompany.app</groupId>
<artifactId>my-app</artifactId>
<version>1</version>
<relativePath>.../parent/pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>my-module</artifactId>
</project>
プロジェクト集合プロジェクト継承により、サブプロジェクトを再管理または構築する際には、parentプロジェクトのpomを利用することができます.逆に?もし完全なプロジェクトを構築するなら、多くのサブプロジェクトをまとめて包装する必要がありますか?Project Agregationはこの問題を解決したのです.
どうしますか?2点を満たす必要があります
参照
親プロジェクトのpomの中のpackagingの値は「pom」とします.
親プロジェクトのpomにサブプロジェクトのカタログを作成します.
もし私たちがmy-moduleをmy-apに集めたいなら、次のように修正します.
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany.app</groupId>
<artifactId>my-app</artifactId>
<version>1</version>
<packaging>pom</packaging>
<modules>
<module>my-module</module>
</modules>
</project>
上には、経路が書かれていないのも、mavenのカタログに従うと約束されているからです.もしそうでないなら、書かなければなりません.
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany.app</groupId>
<artifactId>my-app</artifactId>
<version>1</version>
<packaging>pom</packaging>
<modules>
<module>../my-module</module>
</modules>
</project>
約束はいい方法です.コードを節約して、共通認識を形成しやすいです.Project Interpolation and Varables-使用変数
pomでは、パスなど、同じ文字列のセグメントを複数の場所で使用することができます.変数の声明と引用をサポートすることで、ハードコードを防ぐことができます.
変数はどのように参照しますか?下を見てください
<version>${project.version}</version>
ドル記号に大かっこをつけて、点を使って等級別にアクセスします.とても便利です.継承関係があれば、サブクラスの値を採用します.どのような変数がありますか?
Project Model Varables
pom内のどの単一の値の要素も変数として参照できます.
参照
$project.groupId、$project.version、{project.build.sourceDirectory}
Special Varables
$basedir、現在のプロジェクトの所在ディレクトリ
$project.baseUri、現在のプロジェクトの所在ディレクトリURI.Since Maven 2.1.0
$maven.build.timestamp、プロジェクトのbuildの開始時間.Since Maven 2.10-M 1
Propties
pomで定義されているProptiesを変数として参照することもできます.
<project>
...
<properties>
<mavenVersion>2.1</mavenVersion>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-artifact</artifactId>
<version>${mavenVersion}</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-project</artifactId>
<version>${mavenVersion}</version>
</dependency>
</dependencies>
...
</project>
Proptiesを通じて、いくつかの変数をカスタマイズできます.ハハ.