Maven2 - Deploy

Deploy再び

以前パッケージしたファイルがリモートリポジトリにデプロイ出来ないと悩んでいました。
どうやら、pom.xmlとsettings.xmlの書式がよくなかったようです。

pom.xml

まずはpom.xmlから編集します。

  <distributionManagement>
    <repository>
    <id>deployTest</id>
    <url>scp://192.168.1.230/root/work/deployTest</url>
    </repository>
  </distributionManagement>
id要素でユニークな名称をつけます。ここでつけた名称は、次に設定するsettings.xmlのidと一致しておく必要があります。
scpでは認証を必要とします。そのユーザー名は、次のsettings.xmlで設定します。また、ここで使われるユーザーは、Mavenのプロセスオーナーになるようです。
settings.xml

次にユーザーホームディレクトリ配下の、.m2ディレクトリにsettings.xmlがあります。そのファイルを編集します。

  <servers>
    <server>
      <id>deployTest</id>
      <username>root</username>
      <password>*******</password>
    </server>
  </servers>
idには、先ほどpom.xmlで設定したidを指定します。
ユーザー名です。
パスワードです。

Deploy実行

それではdeployを実行してみます。
パッケージの名前に影響するpom.xmlの要素です。

  <groupId>com.javaworld.hotels</groupId>
  <artifactId>HotelWebapp</artifactId>
  <packaging>war</packaging>
  <version>1.0-SNAPSHOT</version>

それでは、実行です。

[root@javabean HotelWebapp]# mvn deploy
[INFO] Scanning for projects...
[INFO] ----------------------------------------------------------------------------
[INFO] Building Hotel webapp tutorial application
[INFO]    task-segment: [deploy]
[INFO] ----------------------------------------------------------------------------
[INFO] [resources:resources]
[INFO] Using default encoding to copy filtered resources.
[INFO] [compiler:compile]
[INFO] Nothing to compile - all classes are up to date
[INFO] [resources:testResources]
[INFO] Using default encoding to copy filtered resources.
[INFO] [compiler:testCompile]
[INFO] No sources to compile
[INFO] [surefire:test]
[INFO] No tests to run.
[INFO] [war:war]
[INFO] Exploding webapp...
[INFO] Copy webapp webResources to /root/work/mavenproject/Hotel/HotelWebapp/target/HotelWebapp
[INFO] Assembling webapp HotelWebapp in /root/work/mavenproject/Hotel/HotelWebapp/target/HotelWebapp
[INFO] Generating war /root/work/mavenproject/Hotel/HotelWebapp/target/HotelWebapp.war
[INFO] Building war: /root/work/mavenproject/Hotel/HotelWebapp/target/HotelWebapp.war
[INFO] [install:install]
[INFO] Installing /root/work/mavenproject/Hotel/HotelWebapp/target/HotelWebapp.war to /root/.m2/repository/com/javaworld/hotels/HotelWebapp/1.0-SNAPSHOT/HotelWebapp-1.0-SNAPSHOT.war
[INFO] [deploy:deploy]
[INFO] Retrieving previous build number from deployTest
Uploading: scp://192.168.1.230/root/work/deployTest/com/javaworld/hotels/HotelWebapp/1.0-SNAPSHOT/HotelWebapp-1.0-20060623.084554-1.war
5K uploaded
[INFO] Retrieving previous metadata from deployTest
[INFO] Uploading project information for HotelWebapp 1.0-20060623.084554-1
[INFO] Retrieving previous metadata from deployTest
[INFO] Uploading repository metadata for: 'artifact com.javaworld.hotels:HotelWebapp'
[INFO] Retrieving previous metadata from deployTest
[INFO] Uploading repository metadata for: 'snapshot com.javaworld.hotels:HotelWebapp:1.0-SNAPSHOT'
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 7 seconds
[INFO] Finished at: Fri Jun 23 17:45:58 JST 2006
[INFO] Final Memory: 7M/18M
[INFO] ------------------------------------------------------------------------

デプロイ先を見てみます。

[root@javabean 1.0-SNAPSHOT]# pwd
/root/work/deployTest/com/javaworld/hotels/HotelWebapp/1.0-SNAPSHOT
[root@javabean 1.0-SNAPSHOT]# ls -l
合計 40
-rw-r--r--  1 root root 1116  6月 23 17:45 HotelWebapp-1.0-20060623.084554-1.pom
-rw-r--r--  1 root root   32  6月 23 17:45 HotelWebapp-1.0-20060623.084554-1.pom.md5
-rw-r--r--  1 root root   40  6月 23 17:45 HotelWebapp-1.0-20060623.084554-1.pom.sha1
-rw-r--r--  1 root root 6120  6月 23 17:45 HotelWebapp-1.0-20060623.084554-1.war
-rw-r--r--  1 root root   32  6月 23 17:45 HotelWebapp-1.0-20060623.084554-1.war.md5
-rw-r--r--  1 root root   40  6月 23 17:45 HotelWebapp-1.0-20060623.084554-1.war.sha1
-rw-r--r--  1 root root  363  6月 23 17:45 maven-metadata.xml
-rw-r--r--  1 root root   32  6月 23 17:45 maven-metadata.xml.md5
-rw-r--r--  1 root root   40  6月 23 17:45 maven-metadata.xml.sha1

生成されています。場所は指定していたディレクトリ配下に、groupIdで指定した[com.javaworld.hotels]の階層がディレクトリが作られ、さらにその下にartifactId[HotelWebapp]でディレクトリが作られます。
そして、versionでディレクトリが作られました。
groupId/artifactId/version
その中には、artifactId+日付でwarファイルが作成されます。