2014年09月08日

Maven を使ってみる

Maven の使い方を、ちょっとだけお勉強してみる。


1.プロジェクトのガラを作成

E:\develop>mvn archetype:generate ^
More? -DgroupId=com.example.servlet ^
More? -DartifactId=servlet-sample ^
More? -DarchetypeArtifactId=maven-archetype-webapp
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven Stub Project (No POM) 1
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] >>> maven-archetype-plugin:2.2:generate (default-cli) > generate-sources @ standalone-pom >>>
[INFO]
[INFO] <<< maven-archetype-plugin:2.2:generate (default-cli) < generate-sources @ standalone-pom <<<
[INFO]
[INFO] --- maven-archetype-plugin:2.2:generate (default-cli) @ standalone-pom ---
[INFO] Generating project in Interactive mode
[INFO] Using property: groupId = com.example.servlet
[INFO] Using property: artifactId = servlet-sample
Define value for property 'version': 1.0-SNAPSHOT: :
[INFO] Using property: package = com.example.servlet
Confirm properties configuration:
groupId: com.example.servlet
artifactId: servlet-sample
version: 1.0-SNAPSHOT
package: com.example.servlet
Y: : Y
[INFO] ----------------------------------------------------------------------------
[INFO] Using following parameters for creating project from Old (1.x) Archetype: maven-archetype-webapp:1.0
[INFO] ----------------------------------------------------------------------------
[INFO] Parameter: basedir, Value: E:\develop
[INFO] Parameter: package, Value: com.example.servlet
[INFO] Parameter: groupId, Value: com.example.servlet
[INFO] Parameter: artifactId, Value: servlet-sample
[INFO] Parameter: packageName, Value: com.example.servlet
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] project created from Old (1.x) Archetype in dir: E:\develop\servlet-sample
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 9.642 s
[INFO] Finished at: 2014-09-05T18:06:20+09:00
[INFO] Final Memory: 10M/28M
[INFO] ------------------------------------------------------------------------
E:\develop>


2.作成されたガラの確認

E:\develop\servlet-sample>tree /f
フォルダー パスの一覧
ボリューム シリアル番号は xxxxxxxx xxxx:xxxx です
E:.
│ pom.xml

└─src
  └─main
    ├─resources
    └─webapp
      │ index.jsp
      │
      └─WEB-INF
          web.xml


E:\develop\servlet-sample>


3.src/main/java/com/example/servlet フォルダを作成する


4.作成したフォルダに ServletTest.java を配置する

package com.example.servlet;

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletOutputStream;
import javax.servlet.annotation.WebServlet;
import java.io.IOException;

@WebServlet("/svtest")
public class ServletTest extends HttpServlet {
  @Override
  public void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException {
    ServletOutputStream os = res.getOutputStream();
    os.write(("ダメよー、ダメダメ").getBytes("UTF-8"));
  }
}


5.web.xml を削除する

  サーブレットのマッピングは 上の @WebServlet アノテーションで指定済みである。


6.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/maven-v4_0_0.xsd">
 <modelVersion>4.0.0</modelVersion>
 <groupId>com.example.servlet</groupId>
 <artifactId>servlet-sample</artifactId>
 <packaging>war</packaging>
 <version>1.0</version>
 <name>servlet-sample Maven Webapp</name>
 <url>http://maven.apache.org</url>
 <!-- project.build.sourceEncoding を指定しとかないと、ワーニングが出る -->
 <properties>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 </properties>
 <dependencies>
  <dependency>
   <groupId>junit</groupId>
   <artifactId>junit</artifactId>
   <version>3.8.1</version>
   <scope>test</scope>
  </dependency>
  <!-- ここから8行追加 -->
  <!-- version については、http://search.maven.org/#search%7Cga%7C1%7C を参照 -->
  <dependency>
   <groupId>javax.servlet</groupId>
   <artifactId>javax.servlet-api</artifactId>
   <version>3.1.0</version>
   <scope>provided</scope>
  </dependency>
 </dependencies>
 <build>
  <finalName>servlet-sample</finalName>
  <!-- ここから23行追加 -->
  <!-- version については、http://search.maven.org/#search%7Cga%7C1%7C を参照 -->
  <plugins>
   <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.1</version>
    <!-- source と target については、http://maven.apache.org/plugins/maven-compiler-plugin/compile-mojo.html を参照 -->
    <configuration>
     <source>1.8</source>
     <target>1.8</target>
    </configuration>
   </plugin>
   <plugin>
     <groupId>org.apache.maven.plugins</groupId>
     <artifactId>maven-war-plugin</artifactId>
     <version>2.4</version>
     <configuration>
       <!-- web.xml を削除してるので、ここの指定がないとエラーになる -->
       <failOnMissingWebXml>false</failOnMissingWebXml>
     </configuration>
   </plugin>
  </plugins>
 </build>
</project>


7.war を作成する

E:\develop\servlet-sample>mvn package
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building servlet-sample Maven Webapp 1.0
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ servlet-sample ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 0 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ servlet-sample ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to E:\develop\servlet-sample\target\classes
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ servlet-sample ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory E:\develop\servlet-sample\src\test\resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ servlet-sample ---
[INFO] No sources to compile
[INFO]
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ servlet-sample ---
[INFO] No tests to run.
[INFO]
[INFO] --- maven-war-plugin:2.4:war (default-war) @ servlet-sample ---
[INFO] Packaging webapp
[INFO] Assembling webapp [servlet-sample] in [E:\develop\servlet-sample\target\servlet-sample]
[INFO] Processing war project
[INFO] Copying webapp resources [E:\develop\servlet-sample\src\main\webapp]
[INFO] Webapp assembled in [707 msecs]
[INFO] Building war: E:\develop\servlet-sample\target\servlet-sample.war
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.683 s
[INFO] Finished at: 2014-09-08T15:18:28+09:00
[INFO] Final Memory: 13M/32M
[INFO] ------------------------------------------------------------------------
E:\develop\servlet-sample>


8.ブラウザで表示
  target フォルダに作成された、sample-servlet.war を、 tomcat に配置。
  http://localhost:8080/sample-servlet/svtest にアクセス。
svtest.jpg


うーん、便利なんだかどうだか、まだわからん。



posted by NERDY at 13:39 | Comment(1) | 技術 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
こんにちは。

すぐにはなかなか分かりませんよね。
Posted by 師子乃 at 2019年07月02日 12:41
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

×

この広告は180日以上新しい記事の投稿がないブログに表示されております。