スポンサーリンク
前回は、Mavenプロジェクト変換直後に既存ファイルがどのように変更されたのかを分析しました。今回は既存EclipseプロジェクトをMavenプロジェクトに変換直後に、Mavenの動作を指定するpom.xmlがどんな初期設定になっているのかを分析し、どこを変更しなければならないかをチェックしたいと思います。
特に、現在の設定を確認するために役立つ「Effective POM」を見る方法を紹介します。
スポンサーリンク
作成されたpom.xmlの初期状態
Eclipseによって作成されたばかりのpom.xmlは、
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>project-name</groupId> <artifactId>project-name</artifactId> <version>0.0.1-SNAPSHOT</version> </project>
と、とても設定項目が少ないことが分かると思います。しかし、実は書かれていない部分はデフォルトの設定が適用されるだけで、たくさんの設定がすでに行われていると考えると、動作が理解しやすくなります。
ここで利用したいEclipseの機能が「Effective POMタブ」です。
Effective POMタブ
Eclipseでpom.xmlファイルを開くと、「Maven POM Editor」で内容が表示されます。
このとき気がつきにくいのですが、その「Maven POM Editor」の下には「Effective POM」という「タブ」があるので、それを選択します。
すると、デフォルトの値として省略されていた設定まで含めたPOMの全容が表示されます(同様の内容は、「maven help:effective-pom」コマンドで表示可能です)。
変換直後のEffective POMの全体
プロジェクト名を「project-name」に置き換えています。また。pom.xmlが「X:\home」というディレクトリに保存されているとします。
長いです。
<?xml version="1.0"?> <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <modelVersion>4.0.0</modelVersion> <groupId>project-name</groupId> <artifactId>project-name</artifactId> <version>0.0.1-SNAPSHOT</version> <repositories> <repository> <snapshots> <enabled>false</enabled> </snapshots> <id>central</id> <name>Maven Repository Switchboard</name> <url>http://repo1.maven.org/maven2</url> </repository> </repositories> <pluginRepositories> <pluginRepository> <releases> <updatePolicy>never</updatePolicy> </releases> <snapshots> <enabled>false</enabled> </snapshots> <id>central</id> <name>Maven Plugin Repository</name> <url>http://repo1.maven.org/maven2</url> </pluginRepository> </pluginRepositories> <build> <sourceDirectory>X:\home\git\project-name\project-name\src\main\java</sourceDirectory> <scriptSourceDirectory>X:\home\git\project-name\project-name\src\main\scripts</scriptSourceDirectory> <testSourceDirectory>X:\home\git\project-name\project-name\src\test\java</testSourceDirectory> <outputDirectory>X:\home\git\project-name\project-name\target\classes</outputDirectory> <testOutputDirectory>X:\home\git\project-name\project-name\target\test-classes</testOutputDirectory> <resources> <resource> <directory>X:\home\git\project-name\project-name\src\main\resources</directory> </resource> </resources> <testResources> <testResource> <directory>X:\home\git\project-name\project-name\src\test\resources</directory> </testResource> </testResources> <directory>X:\home\git\project-name\project-name\target</directory> <finalName>project-name-0.0.1-SNAPSHOT</finalName> <pluginManagement> <plugins> <plugin> <artifactId>maven-antrun-plugin</artifactId> <version>1.3</version> </plugin> <plugin> <artifactId>maven-assembly-plugin</artifactId> <version>2.2-beta-5</version> </plugin> <plugin> <artifactId>maven-dependency-plugin</artifactId> <version>2.1</version> </plugin> <plugin> <artifactId>maven-release-plugin</artifactId> <version>2.0</version> </plugin> </plugins> </pluginManagement> <plugins> <plugin> <artifactId>maven-clean-plugin</artifactId> <version>2.4.1</version> <executions> <execution> <id>default-clean</id> <phase>clean</phase> <goals> <goal>clean</goal> </goals> </execution> </executions> </plugin> <plugin> <artifactId>maven-install-plugin</artifactId> <version>2.3.1</version> <executions> <execution> <id>default-install</id> <phase>install</phase> <goals> <goal>install</goal> </goals> </execution> </executions> </plugin> <plugin> <artifactId>maven-resources-plugin</artifactId> <version>2.4.3</version> <executions> <execution> <id>default-resources</id> <phase>process-resources</phase> <goals> <goal>resources</goal> </goals> </execution> <execution> <id>default-testResources</id> <phase>process-test-resources</phase> <goals> <goal>testResources</goal> </goals> </execution> </executions> </plugin> <plugin> <artifactId>maven-surefire-plugin</artifactId> <version>2.7.1</version> <executions> <execution> <id>default-test</id> <phase>test</phase> <goals> <goal>test</goal> </goals> </execution> </executions> </plugin> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> <executions> <execution> <id>default-testCompile</id> <phase>test-compile</phase> <goals> <goal>testCompile</goal> </goals> </execution> <execution> <id>default-compile</id> <phase>compile</phase> <goals> <goal>compile</goal> </goals> </execution> </executions> </plugin> <plugin> <artifactId>maven-jar-plugin</artifactId> <version>2.3.1</version> <executions> <execution> <id>default-jar</id> <phase>package</phase> <goals> <goal>jar</goal> </goals> </execution> </executions> </plugin> <plugin> <artifactId>maven-deploy-plugin</artifactId> <version>2.5</version> <executions> <execution> <id>default-deploy</id> <phase>deploy</phase> <goals> <goal>deploy</goal> </goals> </execution> </executions> </plugin> <plugin> <artifactId>maven-site-plugin</artifactId> <version>2.0.1</version> <executions> <execution> <id>default-site</id> <phase>site</phase> <goals> <goal>site</goal> </goals> <configuration> <outputDirectory>X:\home\git\project-name\project-name\target\site</outputDirectory> <reportPlugins> <reportPlugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-project-info-reports-plugin</artifactId> </reportPlugin> </reportPlugins> </configuration> </execution> <execution> <id>default-deploy</id> <phase>site-deploy</phase> <goals> <goal>deploy</goal> </goals> <configuration> <outputDirectory>X:\home\git\project-name\project-name\target\site</outputDirectory> <reportPlugins> <reportPlugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-project-info-reports-plugin</artifactId> </reportPlugin> </reportPlugins> </configuration> </execution> </executions> <configuration> <outputDirectory>X:\home\git\project-name\project-name\target\site</outputDirectory> <reportPlugins> <reportPlugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-project-info-reports-plugin</artifactId> </reportPlugin> </reportPlugins> </configuration> </plugin> </plugins> </build> <reporting> <outputDirectory>X:\home\git\project-name\project-name\target\site</outputDirectory> </reporting> </project>
この中で、変更が必須なのは「Dependency(必要ライブラリの登録)」と「Directories(ソースディレクトリ・出力ディレクトリの設定)」の変更です。
次回はまず「Dependency」の設定方法を紹介します。
スポンサーリンク
スポンサーリンク