Struts Hello World! by Maven

通过 maven 的交互模式创建一个空白的 struts 工程十分简单,实际上关键的指令只有下面这一句:

$ mvn archetype:generate -Dfilter=org.apache:struts

上面这行指令带了filter 参数 (The displayed list will contain only archetypes with a groupId containing org.apache AND an artifactId containing struts, Ref here.),输出结果列出了 struts 相关的几个 archetype,一目了然:

Choose archetype:
1: remote -> org.apache.struts:struts2-archetype-angularjs (-)
2: remote -> org.apache.struts:struts2-archetype-blank (-)
3: remote -> org.apache.struts:struts2-archetype-convention (-)
4: remote -> org.apache.struts:struts2-archetype-dbportlet (-)
5: remote -> org.apache.struts:struts2-archetype-plugin (-)
6: remote -> org.apache.struts:struts2-archetype-portlet (-)
7: remote -> org.apache.struts:struts2-archetype-starter (-)
Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): : 2

接下来选版本,再设置 groupId, artifactid, version, package (Java default package for this project) 就 OK 了,生成的项目目录结构如下:

$ tree
.
├── pom.xml
└── src
    ├── main
    │   ├── java
    │   │   └── info
    │   │       └── iridiumcao
    │   │           └── example
    │   │               ├── ExampleSupport.java
    │   │               ├── HelloWorld.java
    │   │               └── Login.java
    │   ├── resources
    │   │   ├── example.xml
    │   │   ├── info
    │   │   │   └── iridiumcao
    │   │   │       └── example
    │   │   │           ├── Login-validation.xml
    │   │   │           ├── package_es.properties
    │   │   │           └── package.properties
    │   │   ├── log4j2.xml
    │   │   └── struts.xml
    │   └── webapp
    │       ├── index.html
    │       └── WEB-INF
    │           ├── example
    │           │   ├── HelloWorld.jsp
    │           │   ├── Login.jsp
    │           │   ├── Menu.jsp
    │           │   ├── Missing.jsp
    │           │   ├── Register.jsp
    │           │   └── Welcome.jsp
    │           └── web.xml
    └── test
        └── java
            └── info
                └── iridiumcao
                    └── example
                        ├── ConfigTest.java
                        ├── HelloWorldTest.java
                        └── LoginTest.java

接下来用 IDE 打开,配置下 tomcat,编译运行就行了。注意,自动创建的项目可能需要一些细微的调整,比如我碰到了生成 pom.xml 里,log4j2.version 未设值。

其他。很早以前记录过手写代码,使用 Eclipse 做 IDE 开发一个 Struts 的 HelloWorld,今天看来特别罗嗦,这个创建过程极不友好,盖因当时不知 maven。选择工具是重要的,公认的优秀工具不应该忽视。

附:

Achetype Goals:http://maven.apache.org/archetype/maven-archetype-plugin/plugin-info.html