Maven2 - Aggregator projects
複数のプロジェクトの連携[dependency]
複数のプロジェクトを連携させる事が可能です。
例えば、project-1では[aaa.jar]、project-2では[bbb.war]だけども内部にaaa.jarを包含するもの。
こう言った場合のプロジェクトの作成方法です。
まず、project-1を作成します。
通常通りプロジェクトを作成したので問題ないです。この場合だとJARが生成されるようなプロジェクトです。
次に、project-2を作成します。
今回も通常通りWebApplicationを作成します。
ただし、pom.xmlにproject-1のJARが必要である事を明記する必要があります。
次のように[groupId][artifactId][version]を指定します。
<dependencies> <dependency> <groupId>com.javaworld.hotels</groupId> <artifactId>HotelDatabase</artifactId> <version>1.0-SNAPSHOT</version> </dependency> </dependencies>
こうする事で、当プロジェクトがBuildされる時にHotelDatabaseのjarファイルを自動的に包含します。
また、project-1をBuildし、続いてproject-2をbuildするような集合プロジェクトを定義するpom.xmlの例をあげます。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSc hema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0 _0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.javaworld.hotels</groupId> <version>1.0-SNAPSHOT</version> <artifactId>Hotel</artifactId> <packaging>pom</packaging> <modules> <module>HotelDatabase</module> <module>HotelWebapp</module> </modules> </project>
ポイントは、
ここをpomにしないと、
Project ID: com.javaworld.hotels:Hotel POM Location: /root/work/mavenproject/Hotel/pom.xml Validation Messages: [0] Packaging 'ear' is invalid. Aggregator projects require 'pom' as packaging. Reason: Failed to validate POM
pomにしろとWARNINGが発生します。