¥Õ¥§¡¼¥º †¥Õ¥§¡¼¥º¤È¤Ï mvn complie¤È¤«mvn install¤È¤«¡¢¥×¥í¥¸¥§¥¯¥È¤ò¥Ó¥ë¥É¤¹¤ë¤¿¤á¤Î°ì¤Ä¤Î½¸¤Þ¤ê¤Î¤³¤È¡£¥Õ¥§¡¼¥º¤ò»ØÄꤹ¤ë¤È¤½¤ì¤Ë´ØÏ¢ÉÕ¤¤¤¿¥´¡¼¥ë¤¬°ì¤Ä°Ê¾å¼Â¹Ô¤µ¤ì¤ë¡£´ØÏ¢¤Å¤±¤Ï¡¢¤½¤Î¥×¥í¥¸¥§¥¯¥È¤Î¥¢¡¼¥Æ¥£¥Õ¥¡¥¯¥È¤Î¥¿¥¤¥×¤äpom.xml¤Î¾ðÊ󤫤顢Maven¤¬¾¡¼ê¤ËȽÃǤ¹¤ë¤é¤·¤¤¡£ ¤Þ¤¿¥Õ¥§¡¼¥º¤Ë¤Ï validate -> compile -> test -> deploy¤Ê¤É¤È¼Â¹Ô½ç½ø¤Ê¤É¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£¤³¤ì¤ò¥Ó¥ë¥É¥é¥¤¥Õ¥µ¥¤¥¯¥ë¤È¤¤¤¦¡£ ¥Ç¥Õ¥©¥ë¥È¤Î¥é¥¤¥Õ¥µ¥¤¥¯¥ë¤Ï ${MAVEN_HOME}/lib/maven-core-2.0.7-uber.jar#META-INF/plexus/components.xml
¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£components.xml ¥ê¥Ý¥¸¥È¥ê¤Ë¥×¥í¥¥··Ðͳ¤ÇÀܳ¤¹¤ë †~/.m2/settings.xml ¤Ë°Ê²¼¤Îµ½Ò¤ò½ñ¤¤¤Æ¤ª¤¤Þ¤¹¡£ <settings>
<proxies>
<proxy>
<active>true</active>
<protocol>http</protocol>
<host>hogehoge.jp</host>
<port>81</port>
<username>fuga</username>
<password>fuga</password>
<nonProxyHosts>www.google.com|*.hoge.jp</nonProxyHosts>
</proxy>
</proxies>
</settings>
¥×¥í¥¸¥§¥¯¥ÈºîÀ®¡£ †mvn archetype:create -DgroupId=nu.mine.kino.mavensample -DartifactId=kino-app ¥°¥ë¡¼¥×ID¤È¥×¥é¥°¥¤¥óID¤ò»ØÄꤹ¤ë¤ó¤Ç¤¹¤Í¡£ pom.xml¤«¤éEclipse¤Î¥×¥í¥¸¥§¥¯¥È¤òÀ¸À®¤¹¤ë¡£ †mvn eclipse:eclipse ¤³¤ì¤ÇEclipse´ØÏ¢¤Î¥Õ¥¡¥¤¥ë¤¬¤Ç¤¤¢¤¬¤ê¤Þ¤¹¡£°Ê¸å¡¢Eclipse¾å¤Ç´ÉÍý¤Ç¤¤ë¤ï¤±¤Ç¤¹¤Í¡£ ½ÐÎϤµ¤ì¤ë¥Õ¥¡¥¤¥ëÆâ¤Ç M2_REPO ¤È¤¤¤¦ÊÑ¿ô¤ò»ÈÍѤ·¤Æ¤¤¤ë¤Î¤Ç¡¢Eclipse¤ÎÊÑ¿ô¤È¤·¤ÆM2_REPO¤òÄêµÁ¤·¤Æ¤ª¤¤Þ¤¹¡£ÃÍ¤Ï¥í¡¼¥«¥ë¥ê¥Ý¥¸¥È¥ê¤Ø¤Î¥Ñ¥¹¤ò»ØÄꤷ¤Æ¤ª¤¤Þ¤¹¡£ ¥×¥í¥¸¥§¥¯¥È¤Î¹½À®¤ò½ÐÎϤ¹¤ë †Ä̾ïpom.xml¤Ï¥Ç¥Õ¥©¥ë¥ÈÃͤϾÊά¤µ¤ì¤Þ¤¹¤¬¡¢¤½¤ì¤ò¾Êά¤·¤Ê¤¤¤Ç½ÐÎϤ·¤Þ¤¹¡£ mvn projecthelp:effective-pom ¥³¥ó¥½¡¼¥ë¤Ë <?xml version="1.0"?><project>
<modelVersion>4.0.0</modelVersion>
<groupId>nu.mine.kino.mavensample</groupId>
<artifactId>kino-app</artifactId>
<name>kino-app</name>
<version>1.0-SNAPSHOT</version>
<url>http://maven.apache.org</url>
<build>
<sourceDirectory>t:\workspace3.2\kino-app\src\main\java</sourceDirectory>
<scriptSourceDirectory>src/main/scripts</scriptSourceDirectory>
<testSourceDirectory>t:\workspace3.2\kino-app\src\test\java</testSourceDirectory>
<outputDirectory>t:\workspace3.2\kino-app\target\classes</outputDirectory>
<testOutputDirectory>t:\workspace3.2\kino-app\target\test-classes</testOutputDirectory>
<resources>
<resource>
<directory>t:\workspace3.2\kino-app\src\main\resources</directory>
</resource>
</resources>
<testResources>
<testResource>
<directory>t:\workspace3.2\kino-app\src\test\resources</directory>
</testResource>
</testResources>
<directory>t:\workspace3.2\kino-app\target</directory>
<finalName>kino-app-1.0-SNAPSHOT</finalName>
<plugins>
<plugin>
<artifactId>maven-projecthelp-plugin</artifactId>
<version>2.0-beta-1</version>
</plugin>
</plugins>
</build>
<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>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<reporting>
<outputDirectory>target/site</outputDirectory>
</reporting>
</project>
¤¬½ÐÎϤµ¤ì¤Þ¤·¤¿¡£¥Õ¥¡¥¤¥ë¤Ë¥ê¥À¥¤¥ì¥¯¥È¤·¤Æ¡¢¤Á¤ç¤³¤Á¤ç¤³ÊÔ½¸¤·¤Æ»È¤¦¤³¤È¤¬¤Ç¤¤ÆÊØÍø¤Ç¤¹¡£¥Ç¥Õ¥©¥ë¥ÈÃͤ¬¤Ç¤Æ¤ë¤Î¤¬¤è¤¤¤Ç¤¹¤Í¡£ settings.xml¤Î¹½À®¤ò½ÐÎϤ¹¤ë †mvn help:effective-settings -Doutput=effective-settings.xml ¤Ç¥Ç¥Õ¥©¥ë¥È¤Îsettings.xml¤¬½ÐÎϤµ¤ì¤ë ¥í¡¼¥«¥ë¥ê¥Ý¥¸¥È¥ê¤òÊѹ¹¤¹¤ë †¥Ç¥Õ¥©¥ë¥È¤Ï ~/.m2/repository ¤Î¥ä¥Ä¡£settings.xml¤ÇÊѹ¹²Äǽ¤Ç¤¹¡£ <?xml version="1.0"?><settings> <localRepository>~/.m2/repositoryNew</localRepository> <-¤³¤ó¤Ê´¶¤¸¡£ <servers>... </servers>
http://slashdot.jp/~pluto/journal/328571 °Í¸¤¹¤ë¥é¥¤¥Ö¥é¥ê¤òÄɲä¹¤ë †Maven¤ÏɬÍפʥ饤¥Ö¥é¥ê¤¬¥í¡¼¥«¥ë¤Ë¤¢¤ë¤«¤òõ¤·¡¢¤Ê¤«¤Ã¤¿¤é¥Í¥Ã¥È¾å¤Î¥ê¥Ý¥¸¥È¥ê¤òõ¤·¤Ë¹Ô¤¤Þ¤¹¡£¤ÇɬÍפʥ饤¥Ö¥é¥ê¤Ç¤¹¤¬¡¢pom.xml¤Ç°Ê²¼¤Î¤è¤¦¤Ë»ØÄꤷ¤Þ¤¹¡£ <dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency> dependenciesÆâ¤ËÊ£¿ô¤«¤±¤ë
</dependencies>
<groupId /> <artifactId /> <version /> ¤Ïɬ¿Ü¤ß¤¿¤¤¤Ç¤¹¤Í¡£ ¥µ¥¤¥È¤òºîÀ®¤¹¤ë †ºîÀ®¤·¤¿¥µ¥¤¥È¤Ë¡¢ÍÍ¡¹¤Ê¾ðÊó¤òºÜ¤»¤ë †¥½¡¼¥¹¤òjar¤Ë¤¹¤ë †mvn package ¤Çjar¤¬ºîÀ®¤µ¤ì¤Þ¤¹¡£ ¥í¡¼¥«¥ë¥ê¥Ý¥¸¥È¥ê¤Ëjar¤òÇÛÃÖ¤¹¤ë †mvn install ¤Ç³ºÅö¥×¥í¥¸¥§¥¯¥È¤¬¥í¡¼¥«¥ë¥ê¥Ý¥¸¥È¥ê(~/.m2¤Î¤³¤È¤Ç¤¹)¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Þ¤¹¡£Ê£¿ô¤Î¥×¥í¥¸¥§¥¯¥È¤¬°Í¸¤·¤¢¤Ã¤Æ¤ë¹½À®¤Ç³«È¯¤¹¤ë¤È¤¤Ï¥í¡¼¥«¥ë¥ê¥Ý¥¸¥È¥ê¤Ë¼«Ê¬¤Î¥é¥¤¥Ö¥é¥ê¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤³¤È¤Ç¡¢ºÆµ¢Åª(¡©)¤Ë³«È¯¤¹¤ì¤Ð¤è¤¤¤Î¤«¤Ê¡©¤Ä¤Þ¤ê ProjectA ProjectB <- ProjectA¤Ë°Í¸¤·¤Æ¤ë ¾ì¹ç¡¢¤Þ¤ºProjectA¤òinstall¤·¤Æ¡¢¤ó¤ÇProjectB¤Ïpom.xml¤ÇProjectA¤Ë°Í¸¤·¤Æ¤ë¡¢¤È½ñ¤¤¤Æ¤ª¤¯¡¢¤È¡£ ¤Á¤Ê¤ß¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤·¤¿¤È¤¤Î¥Ç¥£¥ì¥¯¥È¥ê¹½À®¤Ç¤¹¤¬ groupId(¤Î.¤ò/¤ÇÀڤä¿¥â¥Î)/artifactId ¤È¤Ê¤ë¤Î¤ÇgroupId¤ÏŬÅÙ¤ÊŤµ¤Ë¤·¤Æ¤ª¤¤¤¿Êý¤¬Îɤµ¤½¤¦¤Ç¤¹¡£Eclipse¤Î¥×¥é¥°¥¤¥óID¤À¤È¼ºÇÔ¤¹¤ë¤Ê(¡§Õ`;)¢¬¤â¤¦¤ä¤Ã¤Á¤ã¤Ã¤¿(¡§Õ`;) ¥í¡¼¥«¥ë¥ê¥Ý¥¸¥È¥ê¤ËǤ°Õ¤Îjar¤òÄɲä¹¤ë †¤¿¤È¤¨¤Ð°Ê²¼¤Î¥³¥Þ¥ó¥É¤Ç mvn install:install-file -DgroupId=javax.transaction -DartifactId=jta \ -Dversion=1.0.1B -Dpackaging=jar -Dfile=jta-1_0_1B.jar jta-1_0_1B.jar ¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤¬¾å¤Î¥°¥ë¡¼¥×ID,¥×¥é¥°¥¤¥óID,¥Ð¡¼¥¸¥ç¥ó¤Ç¥í¡¼¥«¥ë¥ê¥Ý¥¸¥È¥ê¤ËÄɲ䵤ì¤Þ¤¹¡£ Maven¤Îpom.xml¤Î¥¹¥¡¼¥Þ †pom.xml¤ÎÀâÌÀ †site:deploy¤Ç¡¢ºîÀ®¤·¤¿¥µ¥¤¥È¤òWEB¤Ë¸ø³«¤¹¤ë¡£ †mvn clean site-deploy ¤Ç¡¢html¥É¥¥å¥á¥ó¥È¤òºîÀ®¤·¤Æ½êÄê¤Î¥µ¡¼¥Ð¤Ë¥¢¥Ã¥×¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£pom.xml¤Ë¤Ï°Ê²¼¤ÎÆâÍÆ¤ò½ñ¤¤¤Æ¤ª¤¯É¬Íפ¬¤¢¤ê¤Þ¤¹¡£ <?xml version="1.0"?>
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>nu.mine.kino.mavensample</groupId>
<artifactId>kino-app</artifactId>
<name>kino-app</name>
<version>1.0-SNAPSHOT</version>
<url>http://maven.apache.org</url>
<ciManagement>
ά
<distributionManagement>
<site>
<id>ftp-site</id> ¢¥×¥Ã¥ÈÀè¤Î¥Ç¥£¥ì¥¯¥È¥ê
<url>ftp://[¥µ¡¼¥Ð̾]/var/www/html/hoge</url>
</site>
</distributionManagement>
<build>
<extensions>
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-ftp</artifactId>
<version>1.0-beta-2</version>
</extension>
</extensions>
<sourceDirectory>source</sourceDirectory>
ά
</project>
¾å¤ÎÎã¤Ç¤ÏFTP¤Ç¥¢¥Ã¥×¤¹¤ë¤è¤¦»ØÄꤷ¤Æ¤¤¤ë¤Î¤Ç¡¢ ~/.m2/settings.xml ¤Ë¥¢¥Ã¥×¤¹¤ëFTP¥¢¥«¥¦¥ó¥È¤ò»ØÄꤷ¤Æ¤ª¤¯É¬Íפ¬¤¢¤ê¤Þ¤¹¡£
°Ê¾å¤Ç£Ï£Ë¤Ç¤¹¡£¡£¤Ã¤Æ¤¤¤¤¤¿¤¤¤È¤³¤í¤Ç¤¹¤¬¡¢¤Ê¤¼¤«¤³¤ì¤À¤±¤Ç¤â¼ºÇÔ¤·¤Á¤ã¤¤¤Þ¤·¤¿¡£¥Í¥Ã¥È¤Ë¤¢¤ó¤Þ¤ê¾ðÊ󤬤ʤ¤¤È¤³¤í¤ò¸«¤ë¤È´Ä¶°Í¸¤Ê¤Î¤«¤â¤·¤ì¤Ê¤¤¤Î¤Ç¤¹¤¬¡¢ bash-3.2$ mvn site:deploy [INFO] [site:deploy] [INFO] ------------------------------------------------------------------------ [ERROR] BUILD ERROR [INFO] ------------------------------------------------------------------------ [INFO] Wagon protocol 'ftp' doesn't support directory copying [INFO] ------------------------------------------------------------------------ [INFO] For more information, run Maven with the -e switch [INFO] ------------------------------------------------------------------------ ¤È¤¤¤¦¤è¤¦¤Ë¡¢¤Ê¤¼¤« Wagon protocol 'ftp' doesn't support directory copying ¤Ã¤Æ¤Ç¤Á¤ã¤¦¤ó¤Ç¤¹¤Í¡£ site:deploy¤ÇFTP¤Ë¼ºÇÔ¤¹¤ë¡£ †¤µ¤Æ Wagon protocol 'ftp' doesn't support directory copying ¤ÎÏäǤ¹¡£¤É¤¦¤âÄ´¤Ù¤Æ¤¤¤¯¤È Maven Wagon¤Ã¤Æ¤Î¤ÏMaven¤ÎÃæ¤Ç³«È¯¤µ¤ì¤Æ¤¤¤ë¥é¥¤¥Ö¥é¥ê·²¤Î¤è¤¦¤Ç¤¹¡£¤¦¤¨¤Îpom.xml¤Ë¤â¤¢¤ë¤è¤¦¤Ë¡¢ wagon-ftp ¤Î 1.0-beta-2 ¤È¤¤¤¦¥Ð¡¼¥¸¥ç¥ó¤Îjar¤À¤È¤³¤ì¤¬¤Ç¤Á¤ã¤¦¤ß¤¿¤¤¡£¤Ã¤Æ¤¤¤Ã¤Æ¤â¤³¤ì¤¬Maven¤Î¥ê¥Ý¥¸¥È¥ê¾å¤ÎºÇ¿·ÈǤߤ¿¤¤¤Ê¤Î¤Ç¡¢¤Á¤ç¤Ã¤Èº¤¤Ã¤Æ¤Þ¤·¤¿¡£ ·ë¶ÉMaven¤ÎSubversion¤Îtrunk¤«¤éºÇ¿·¤Î¥½¡¼¥¹¤ò¼è¤Ã¤Æ¤¤Æ¡¢jar¤òºîÀ®¤·¤Þ¤·¤¿¡£¶ñÂÎŪ¤Ë¤Ï Wagon¤Î¥µ¥¤¥È¤ÇSubversion¤ÎURL¤ò³Îǧ¤·¤Æ /trunk/wagon-providers ¤È /tags/wagon-1.0-beta-2/wagon-providers ¤òcheckout¤·¤Æ¡¢wagon-1.0-beta-2 ¤Î FtpWagon?.java ¤òºÇ¿·¤Èº¹¤·Âؤ¨¤Æ cd wagon-1.0-beta-2/wagon-providers/wagon-ftp mvn clean package ¤Çjar¤òºî¤êľ¤·¤Æ¥í¡¼¥«¥ë¥ê¥Ý¥¸¥È¥ê¤Îjar¤òº¹¤·Âؤ¨¤Á¤ã¤¤¤Þ¤·¤¿¡£ ¤³¤ì¤Ç¤á¤Ç¤¿¤¯FTP¥×¥Ã¥È¤¬¤Ç¤¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡£ jar¤ËƱº¤¹¤ë¥ê¥½¡¼¥¹¤ò»ØÄꤹ¤ë¡£ †¥Ç¥Õ¥©¥ë¥È¤Ç¤Ïsrc/main/resources/Æâ¤Î¥Õ¥¡¥¤¥ë¤Ï¥Ñ¥Ã¥±¡¼¥¸¥ó¥°»þ¤Ë¼«Æ°Åª¤Ëjar¤Îľ²¼¤Ë³ÊǼ¤µ¤ì¤ë¤è¤¦¤Ç¤¹¡£ Î㤨¤ÐEclipse¤Î¥×¥é¥°¥¤¥ó¤Î¤è¤¦¤Ë¥×¥í¥¸¥§¥¯¥Èľ²¼(¤Ä¤Þ¤êpom.xml¤Î¤È¤Ê¤ê)¤Ë¸ºß¤¹¤ë¥Õ¥¡¥¤¥ë¤òjar¤Ë³ÊǼ¤·¤¿¤¤¾ì¹ç¤Ï <build>
<sourceDirectory>source</sourceDirectory>
<scriptSourceDirectory>main/scripts</scriptSourceDirectory>
<testSourceDirectory>test</testSourceDirectory>
<outputDirectory>classes</outputDirectory>
<testOutputDirectory>target\test-classes</testOutputDirectory>
<resources>
<resource>
<directory>.</directory> <-¤³¤³¢
<includes>
<include>plugin.xml</include>
<include>plugin.properties</include>
</includes>
</resource>
</resources>
................
</build>
¤È¤¹¤ì¤Ð¤è¤¤¡£ ÆÈ¼«¤ÎMANIFEST.MF¤òƱº¤·¤¿¤¤¡£ †MANIFEST.MF¤ÏMaven¤¬¾¡¼ê¤ËƱº¤·¤Á¤ã¤¦¤±¤É¡¢Eclipse¤Î¥×¥é¥°¥¤¥ó¤ÏMANIFEST.MF¤Ë¿§¡¹ÄêµÁ¤òµ½Ò¤¹¤ë¤Î¤Ç¡¢¤½¤ì¤ò¤½¤Î¤Þ¤Þ³ÊǼ¤·¤¿¤¤¤Ç¤¹¡£¤½¤ì¤Ï¥×¥é¥°¥¤¥ó¤Ç¹Ô¤¤¤Þ¤¹¡£ <build>
.......
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifestFile>META-INF/MANIFEST.MF</manifestFile>
<manifest>
<addDefaultSpecificationEntries>false</addDefaultSpecificationEntries>
<addDefaultImplementationEntries>false</addDefaultImplementationEntries>
</manifest> ¢¬¤³¤ÎÆó¤Ä¤Ï¤Þ¤ÀÍÑÅÓÉÔÌÀ¡£
</archive>
</configuration>
</plugin>
...........
</plugins>
</build>
¤Ç¤â¤É¤¦¤âMANIFEST.MF¤òÆÉ¤ß¹þ¤ó¤ÇMaven¤¬¾¡¼ê¤Ë¤¤¤¸¤Ã¤Æ¤·¤Þ¤¦¤é¤·¤¯¡¢¤¦¤Þ¤¯¤¤¤¤Þ¤»¤ó(¡§Õ`;)¡£ http://maven.apache.org/plugins/maven-jar-plugin/source-repository.html ¼«Ê¬¤Çºî¤Ã¤Á¤ã¤¦¡© ¥×¥é¥°¥¤¥ó¤Î¥½¡¼¥¹¥³¡¼¥É¤òÆþ¼ê¤¹¤ë †´ðËÜŪ¤Ëhttp://maven.apache.org/plugins/¤Î¥×¥é¥°¥¤¥ó¤Î°ìÍ÷¤«¤é¡¢Ä´¤Ù¤¿¤¤¥×¥é¥°¥¤¥ó¤ò¤µ¤¬¤·¤Æ¡¢¤½¤Î¥×¥é¥°¥¤¥óÍѤΥµ¥¤¥È¤ËÁ«°Ü¡£¤ó¤Çº¸¤Î¥á¥Ë¥å¡¼¤«¤é¥½¡¼¥¹¥ê¥Ý¥¸¥È¥ê¤ÎURL¤¬½ñ¤¤¤Æ¤¢¤ë¥Ú¡¼¥¸¤ËÈô¤Ù¤Ð¤¤¤¤¡£ ¤³¤Îµ»ö¤Ï ¸½ºß¤Î¥¢¥¯¥»¥¹:37420 |