{"id":11111,"date":"2012-12-19T21:00:02","date_gmt":"2012-12-19T12:00:02","guid":{"rendered":"http:\/\/www.sssg.org\/blogs\/hiro345\/?p=11111"},"modified":"2013-01-20T15:37:53","modified_gmt":"2013-01-20T06:37:53","slug":"maven%e3%83%a1%e3%83%a2","status":"publish","type":"post","link":"https:\/\/www.hiro345.net\/blogs\/hiro345\/archives\/11111.html","title":{"rendered":"Maven\u30e1\u30e2"},"content":{"rendered":"<p>Maven\u3092\u4f7f\u3046\u3068\u30d3\u30eb\u30c9\u3092\u81ea\u52d5\u5316\u3067\u304d\u307e\u3059\u3002Maven\u306b\u3064\u3044\u3066\u7c21\u5358\u306b\u30e1\u30e2<br \/>\n<!--more--><\/p>\n<ul>\n<li>\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u304b\u3089\u30d0\u30a4\u30ca\u30ea\u30b3\u30fc\u30c9\u3092\u751f\u6210<\/li>\n<li>\u30d0\u30a4\u30ca\u30ea\u30b3\u30fc\u30c9\u304b\u3089\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u751f\u6210<\/li>\n<li>\u30c6\u30b9\u30c8\u30b3\u30fc\u30c9\u5b9f\u884c<\/li>\n<li>\u30ea\u30e2\u30fc\u30c8\u30b7\u30b9\u30c6\u30e0\u3078\u30c7\u30d7\u30ed\u30a4<\/li>\n<li>\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3068\u30ea\u30ea\u30fc\u30b9\u30ce\u30fc\u30c8\u3092\u4f5c\u6210<\/li>\n<\/ul>\n<pre class=\"brush: bash; gutter: true\">\r\n$ mvn archetype:generate -DgroupId=org.sssg.soft.maven.example -DartifactId=ExampleApp\r\n$ mvn validate\r\n$ mvn compile\r\n$ mvn package\r\n$ mvn test\r\n<\/pre>\n<p>\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u307e\u3067\u9032\u3081\u305f\u3044\u5834\u5408\u306f\u3001\u5358\u306binstall\u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3059\u308c\u3070\u826f\u3044\u3002<\/p>\n<pre class=\"brush: bash; gutter: true\">\r\n$ mvn install\r\n<\/pre>\n<p>\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30e2\u30b8\u30e5\u30fc\u30eb\u5316\u306b\u306f\u3001pom.xml \u3092\u7528\u610f\u3059\u308b\u3002<\/p>\n<pre class=\"brush: xml; gutter: true\">\r\n&lt;project xmlns=&quot;http:\/\/maven.apache.org\/POM\/4.0.0&quot; xmlns:xsi=&quot;http:\/\/www.w3.org\/2001\/XMLSchema-instance&quot;\r\n  xsi:schemaLocation=&quot;http:\/\/maven.apache.org\/POM\/4.0.0 http:\/\/maven.apache.org\/xsd\/maven-4.0.0.xsd&quot;&gt;\r\n  &lt;modelVersion&gt;4.0.0&lt;\/modelVersion&gt;\r\n\r\n  &lt;groupId&gt;org.sssg.soft.maven.example&lt;\/groupId&gt;\r\n  &lt;artifactId&gt;ExampleApp2&lt;\/artifactId&gt;\r\n  &lt;version&gt;1.0-SNAPSHOT&lt;\/version&gt;\r\n  &lt;packaging&gt;pom&lt;\/packaging&gt;\r\n\r\n  &lt;name&gt;LargeApp&lt;\/name&gt;\r\n&lt;\/project&gt;\r\n<\/pre>\n<p>\u30e2\u30b8\u30e5\u30fc\u30eb\u306e\u6307\u5b9a\u3092\u8ffd\u52a0\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059\u3002<\/p>\n<pre class=\"brush: xml; gutter: true\">\r\n  &lt;modules&gt;\r\n    &lt;module&gt;ExampleJar&lt;\/module&gt;\r\n  &lt;\/modules&gt;\r\n<\/pre>\n<p>\u4e0b\u8a18\u306e\u624b\u9806\u3067\u78ba\u8a8d\u304c\u3067\u304d\u307e\u3059\u3002pom.xml\u306bmodule\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"brush: bash; gutter: true\">\r\n$ mkdir ExampleApp2\/\r\n$ vi ExampleApp2\/pom.xml\r\n$ cd ExampleApp2\/\r\n$ mvn archetype:generate -DgroupId=org.sssg.soft.maven.example -DartifactId=ExampleJar\r\n<\/pre>\n<p>Web\u30a2\u30d7\u30ea\u306f\u4e0b\u8a18\u306e\u3088\u3046\u306b\u3057\u3066\u751f\u6210\u3067\u304d\u307e\u3059\u3002<\/p>\n<pre class=\"brush: bash; gutter: true\">\r\n$ mvn archetype:generate  -DgroupId=org.sssg.soft.maven.example -DartifactId=ExampleWar -DarchetypeArtifactId=maven-archetype-webapp\r\n<\/pre>\n<p>maven\u306e\u30ed\u30fc\u30ab\u30eb\u30ea\u30dd\u30b8\u30c8\u30ea\u3078JAR, WAR\u304c\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u306b\u306f\u3001\u4e0b\u8a18\u306e\u3088\u3046\u306b\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"brush: bash; gutter: true\">\r\n$ mvn clean install\r\n<\/pre>\n<p>dependency\u30d7\u30e9\u30b0\u30a4\u30f3\u3068\u3044\u3046\u3082\u306e\u3082\u3042\u308a\u307e\u3059\u3002\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3067\u3069\u3093\u306a\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u4f7f\u3063\u3066\u3044\u308b\u306e\u304b\u3001\u3068\u3044\u3063\u305f\u4f9d\u5b58\u95a2\u4fc2\u306b\u3064\u3044\u3066\u8abf\u3079\u305f\u3044\u3068\u304d\u306b\u4f7f\u3044\u307e\u3059\u3002<\/p>\n<pre class=\"brush: bash; gutter: true\">\r\n$ mvn dependency:analyze\r\n$ mvn dependency:analyze-duplicate\r\n$ mvn dependency:resolve\r\n$ mvn dependency:resolve-plugins\r\n$ mvn dependency:tree\r\n<\/pre>\n<p>\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u54c1\u8cea\u30c1\u30a7\u30c3\u30af PMD\u30d7\u30e9\u30b0\u30a4\u30f3\u3002\u30eb\u30fc\u30eb\u306f\u3001Eclipse\u306ePMD\u30d7\u30e9\u30b0\u30a4\u30f3\u304b\u3089\u30a8\u30af\u30b9\u30dd\u30fc\u30c8\u3057\u3066\u5229\u7528\u3059\u308b\u306e\u304c\u826f\u3044\u3088\u3046\u3067\u3059\u3002<\/p>\n<pre class=\"brush: xml; gutter: true\">\r\n  &lt;reporting&gt;\r\n    &lt;plugins&gt;\r\n      &lt;plugin&gt;\r\n        &lt;groupId&gt;org.apache.maven.plugins&lt;\/groupId&gt;\r\n        &lt;artifactId&gt;maven-pmd-plugin&lt;\/artifactId&gt;\r\n        &lt;version&gt;2.5&lt;\/version&gt;\r\n      &lt;\/plugin&gt;\r\n    &lt;\/plugins&gt;\r\n  &lt;\/reporting&gt;&gt;\r\n\r\n  &lt;reporting&gt;\r\n    &lt;plugins&gt;\r\n      &lt;plugin&gt;\r\n        &lt;groupId&gt;org.apache.maven.plugins&lt;\/groupId&gt;\r\n        &lt;artifactId&gt;maven-pmd-plugin&lt;\/artifactId&gt;\r\n        &lt;version&gt;2.5&lt;\/version&gt;\r\n&lt;configuration&gt;\r\n  &lt;rulesets&gt;\r\n    &lt;ruleset&gt;\/rulesets\/basic.xml&lt;\/ruleset&gt;\r\n    &lt;ruleset&gt;\/rulesets\/controversial.xml&lt;\/ruleset&gt;\r\n    &lt;ruleset&gt;http:\/\/localhost\/design.xml&lt;\/ruleset&gt;\r\n  &lt;\/rulesets&gt;\r\n  &lt;sourceEncoding&gt;UTF-8&lt;\/sourceEncoding&gt;    \r\n  &lt;minimumTokens&gt;100&lt;\/minimumTokens&gt;\r\n  &lt;targetJdk&gt;1.6&lt;\/targetJdk&gt;\r\n&lt;\/configuration&gt;\r\n      &lt;\/plugin&gt;\r\n    &lt;\/plugins&gt;\r\n  &lt;\/reporting&gt;&gt;\r\n<\/pre>\n<p>\u4f7f\u3046\u3068\u304d\u306f\u4e0b\u8a18\u306e\u3088\u3046\u306b\u3002<\/p>\n<pre class=\"brush: bash; gutter: true\">\r\n$ mvn pmd:pmd\r\n<\/pre>\n<p>Maven\u306e\u30c7\u30d5\u30a9\u30eb\u30c8\u30d3\u30eb\u30c9\u30b5\u30a4\u30af\u30eb\u3078\u7d71\u5408\u3059\u308b\u3053\u3068\u3082\u51fa\u6765\u307e\u3059\u3002<\/p>\n<pre class=\"brush: xml; gutter: true\">\r\n&lt;build&gt;&lt;plugins&gt;&lt;plugin&gt;\r\n        &lt;groupId&gt;org.apache.maven.plugins&lt;\/groupId&gt;\r\n        &lt;artifactId&gt;maven-pmd-plugin&lt;\/artifactId&gt;\r\n        &lt;version&gt;2.5&lt;\/version&gt;\r\n&lt;executions&gt;&lt;execution&gt;&lt;goals&gt;\r\n&lt;goal&gt;check&lt;\/goal&gt;\r\n&lt;goal&gt;cpd-check&lt;\/goal&gt;\r\n&lt;\/goals&gt;&lt;\/execution&gt;&lt;\/executions&gt;\r\n&lt;\/plugin&gt;&lt;\/plugins&gt;&lt;\/build&gt;\r\n<\/pre>\n<p>\u751f\u6210\u3055\u308c\u308bpom.xml\u3067\u306f\u3001JUnit 3.8.1\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u304c\u4f7f\u308f\u308c\u3066\u3044\u308b\u3053\u3068\u3082\u3042\u308a\u307e\u3059\u304c\u3001\u53e4\u3044\u306e\u3067 4.8.2\u3068\u3057\u305f\u65b9\u304c\u3088\u3044\u3002<br \/>\nselenium-maven-plugin, maven-jetty-plugin \u3068\u3044\u3063\u305f\u30d7\u30e9\u30b0\u30a4\u30f3\u3082\u3042\u308b\u306e\u3067\u5229\u7528\u3057\u305f\u3044\u3068\u3053\u308d\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Maven\u3092\u4f7f\u3046\u3068\u30d3\u30eb\u30c9\u3092\u81ea\u52d5\u5316\u3067\u304d\u307e\u3059\u3002Maven\u306b\u3064\u3044\u3066\u7c21\u5358\u306b\u30e1\u30e2<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[1207,1209,751],"class_list":["post-11111","post","type-post","status-publish","format-standard","hentry","category-java","tag-java","tag-linux","tag-maven"],"_links":{"self":[{"href":"https:\/\/www.hiro345.net\/blogs\/hiro345\/wp-json\/wp\/v2\/posts\/11111","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hiro345.net\/blogs\/hiro345\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hiro345.net\/blogs\/hiro345\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hiro345.net\/blogs\/hiro345\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hiro345.net\/blogs\/hiro345\/wp-json\/wp\/v2\/comments?post=11111"}],"version-history":[{"count":20,"href":"https:\/\/www.hiro345.net\/blogs\/hiro345\/wp-json\/wp\/v2\/posts\/11111\/revisions"}],"predecessor-version":[{"id":12327,"href":"https:\/\/www.hiro345.net\/blogs\/hiro345\/wp-json\/wp\/v2\/posts\/11111\/revisions\/12327"}],"wp:attachment":[{"href":"https:\/\/www.hiro345.net\/blogs\/hiro345\/wp-json\/wp\/v2\/media?parent=11111"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hiro345.net\/blogs\/hiro345\/wp-json\/wp\/v2\/categories?post=11111"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hiro345.net\/blogs\/hiro345\/wp-json\/wp\/v2\/tags?post=11111"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}