LoginSignup
9
9

More than 5 years have passed since last update.

mavenでStruts2プロジェクトを作る

Last updated at Posted at 2013-09-10

mavenのバージョン。

$ mvn -v
Apache Maven 3.0.3 (r1075438; 2011-03-01 02:31:09+0900)
Maven home: /usr/share/maven
Java version: 1.7.0_12-ea, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.7.0_12.jdk/   Contents/Home/jre
Default locale: ja_JP, platform encoding: UTF-8
OS name: "mac os x", version: "10.8.4", arch: "x86_64", family: "mac"

作る

$ mkdir struts2 && cd struts2
$ mvn archetype:generate
[INFO] Scanning for projects...
Downloading: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-clean-plugin/2.4.1/maven-clean-plugin-2.4.1.pom
Downloaded: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-clean-plugin/2.4.1/maven-clean-plugin-2.4.1.pom (5 KB at 8.3 KB/sec)
:
:
829: remote -> sk.seges.sesam:sesam-annotation-archetype (-)
830: remote -> tk.skuro:clojure-maven-archetype (A simple Maven archetype for Clojure)
831: remote -> uk.ac.rdg.resc:edal-ncwms-based-webapp (-)
Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 296: 

↑まで来たら、"struts2"って入力 + enter。

Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 296: struts2
Choose archetype:
1: remote -> com.jgeppert.struts2.jquery:struts2-jquery-archetype-base (This Archetype provides a Webapp Configuration ready for the Struts2 jQuery Plugin.)
2: remote -> com.jgeppert.struts2.jquery:struts2-jquery-archetype-mobile (This Archetype provides a Webapp Configuration ready for the Struts2 jQuery Mobile Plugin.)
3: remote -> com.jgeppert.struts2.jquery:struts2-jquery-bootstrap-archetype-grid (This Archetype provides a Webapp Configuration ready for the Struts2 jQuery Grid Plugin and the Struts2 Bootstrap Plugin.)
4: remote -> org.apache.struts:struts2-archetype-blank (-)
5: remote -> org.apache.struts:struts2-archetype-convention (-)
6: remote -> org.apache.struts:struts2-archetype-dbportlet (-)
7: remote -> org.apache.struts:struts2-archetype-plugin (-)
8: remote -> org.apache.struts:struts2-archetype-portlet (-)
9: remote -> org.apache.struts:struts2-archetype-starter (-)
Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): : 9 # ← starterを選んだ

次にバージョンを聞かれるから。最新のを選ぶ。新しいのが好きだから。

Choose org.apache.struts:struts2-archetype-starter version: 
1: 2.0.11.2
2: 2.2.1
3: 2.2.1.1
4: 2.3.7
5: 2.3.8
6: 2.3.12
7: 2.3.14
8: 2.3.14.1
9: 2.3.14.2
10: 2.3.14.3
11: 2.3.15
12: 2.3.15.1
Choose a number: 12: 12

groupId・artifactId・version・packageを設定する。

グループ Id(groupId)はプロジェクトを一意に識別する名前で、プロジェクトのルートパッケージ名を指定するのが一般的です。
アーティファクト Id(artifactId)はプロジェクトの成果物の名前です。JARやWARにつける名前を指定してください。
http://d.hatena.ne.jp/Kishi/20090228/1235813480

Define value for property 'groupId': : com.yujiroarai.java.struts2 # 
Define value for property 'artifactId': : helloworld
Define value for property 'version':  1.0-SNAPSHOT: : 
Define value for property 'package':  com.yujiroarai.java.struts2: : 

最後に設定を確認後、"Y"を入力して作成実行。

Confirm properties configuration:
groupId: com.yujiroarai.java.struts2
artifactId: helloworld
version: 1.0-SNAPSHOT
package: com.yujiroarai.java.struts2
 Y: : Y
[INFO] ----------------------------------------------------------------------------
[INFO] Using following parameters for creating project from Archetype:  struts2-archetype-starter:2.3.15.1
[INFO] ----------------------------------------------------------------------------
[INFO] Parameter: groupId, Value: com.yujiroarai.java.struts2
[INFO] Parameter: artifactId, Value: helloworld
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] Parameter: package, Value: com.yujiroarai.java.struts2
[INFO] Parameter: packageInPathFormat, Value: com/yujiroarai/java/struts2
[INFO] Parameter: package, Value: com.yujiroarai.java.struts2
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] Parameter: groupId, Value: com.yujiroarai.java.struts2
[INFO] Parameter: artifactId, Value: helloworld
[INFO] project created from Archetype in dir: /Users/yujiroarai/    workspace/java/struts2/helloworld
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2:40.764s
[INFO] Finished at: Tue Sep 10 21:56:07 JST 2013
[INFO] Final Memory: 9M/142M
[INFO] ------------------------------------------------------------------------

できた。

* tree helloworld
helloworld
├── pom.xml
├── src
│   ├── main
│   │   ├── java
│   │   │   └── com
│   │   │       └── yujiroarai
│   │   │           └── java
│   │   │               └── struts2
│   │   │                   ├── DateConverter.java
│   │   │                   ├── HelloWorldAction.java
│   │   │                   └── IndexAction.java
│   │   ├── resources
│   │   │   ├── applicationContext.xml
│   │   │   ├── com
│   │   │   │   └── yujiroarai
│   │   │   │       └── java
│   │   │   │           └── struts2
│   │   │   │               ├── globalmessages.properties
│   │   │   │               ├── log4j.properties
│   │   │   │               ├── struts.properties
│   │   │   │               └── xwork-conversion.properties
│   │   │   └── struts.xml
│   │   └── webapp
│   │       ├── WEB-INF
│   │       │   ├── decorators
│   │       │   │   └── main.jsp
│   │       │   ├── decorators.xml
│   │       │   ├── dwr.xml
│   │       │   ├── sitemesh.xml
│   │       │   └── web.xml
│   │       ├── index.jsp
│   │       ├── jsp
│   │       │   ├── helloWorld.jsp
│   │       │   └── index.jsp
│   │       └── styles
│   │           ├── forms.css
│   │           ├── layout-1col.css
│   │           ├── layout-navleft-1col.css
│   │           ├── layout-navleft-2col.css
│   │           ├── layout-navtop-1col.css
│   │           ├── layout-navtop-3col.css
│   │           ├── layout-navtop-localleft.css
│   │           ├── layout-navtop-subright.css
│   │           ├── layout.css
│   │           ├── main.css
│   │           ├── nav-horizontal.css
│   │           ├── nav-vertical.css
│   │           ├── tools.css
│   │           └── typo.css
│   └── test
│       └── java
│           └── com
│               └── yujiroarai
│                   └── java
│                       └── struts2
│                           ├── HelloWorldActionTest.java
│                           └── IndexActionTest.java
└── target
    ├── classes
    │   ├── applicationContext.xml
    │   ├── com
    │   │   └── yujiroarai
    │   │       └── java
    │   │           └── struts2
    │   │               ├── DateConverter.class
    │   │               ├── HelloWorldAction.class
    │   │               ├── IndexAction.class
    │   │               ├── globalmessages.properties
    │   │               ├── log4j.properties
    │   │               ├── struts.properties
    │   │               └── xwork-conversion.properties
    │   └── struts.xml
    ├── m2e-wtp
    │   └── web-resources
    │       └── META-INF
    │           ├── MANIFEST.MF
    │           └── maven
    │               └── com.yujiroarai.java.struts2
    │                   └── helloworld
    │                       ├── pom.properties
    │                       └── pom.xml
    └── test-classes
        └── com
            └── yujiroarai
                └── java
                    └── struts2
                        ├── HelloWorldActionTest.class
                        └── IndexActionTest.class
9
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
9