在Spring MVC Maven Eclipse Juno STS 3.0.0项目中会发生什么?

时间:2012-09-17 20:10:05

标签: eclipse spring java-ee eclipse-juno

我正在创建一个新的Spring MVC webapp。

我使用的是STS 3.0 Dashboard - >春天模板项目 - > Spring MVC Project(URL:http://dist.springsource.com/release/STS/help/org.springframework.templates.mvc-3.1.2.zip)来创建项目。它创建了一个像这样的目录结构:

build/
    classes/
src/
    main/
        java/
            com/
                example/
                    web/
                        HomeController.java
        resources/
            META-INF/
            log4j.xml
        webapp/
            resources/
            WEB-INF/
                classes/
                spring/
                    appServlet/
                        servlet-context.xml
                    root-context.xml
                views/
                    home.jsp
                web.xml
    test/ ***(I'll leave out what's under test)***
target/
    classes/  ***(I'll leave out what's under classes)***
    test-classes/  ***(I'll leave out what's under testclasses)***
WebContent/
    META-INF/
        MANIFEST.MF
    WEB-INF/
        lib/

这与我可以找到文档的任何目录布局都不匹配,它肯定看起来不对。就像为什么WebContent/WEB-INF以及src/webapp/WEB-INF一样?为什么同时为build/target/

我希望能够使用Maven从Eclipse Juno以及命令行自动构建和部署,因此问题1是:如何清理此目录结构?

问题2:src/main/resources/src/main/webapp/resources之间有什么区别?如何选择将给定静态资源放入哪个目录?

问题3:如果我有需要包含的库,我不能让Maven得到,我该把它放在哪里?

1 个答案:

答案 0 :(得分:0)

我把它绑在我的本地,以下是文件夹结构:

.
├── pom.xml
├── src
│   ├── main
│   │   ├── java
│   │   │   └── com
│   │   │       └── test
│   │   │           └── spring
│   │   │               └── HomeController.java
│   │   ├── resources
│   │   │   ├── log4j.xml
│   │   │   └── META-INF
│   │   └── webapp
│   │       ├── resources
│   │       └── WEB-INF
│   │           ├── classes
│   │           ├── spring
│   │           │   ├── appServlet
│   │           │   │   └── servlet-context.xml
│   │           │   └── root-context.xml
│   │           ├── views
│   │           │   └── home.jsp
│   │           └── web.xml
│   └── test
│       ├── java
│       │   └── com
│       │       └── test
│       │           └── spring
│       └── resources
│           └── log4j.xml
└── target
    ├── classes
    │   ├── com
    │   │   └── test
    │   │       └── spring
    │   │           └── HomeController.class
    │   └── log4j.xml
    ├── m2e-wtp
    │   └── web-resources
    │       └── META-INF
    │           ├── MANIFEST.MF
    │           └── maven
    │               └── com.exigen
    │                   └── spring
    │                       ├── pom.properties
    │                       └── pom.xml
    └── test-classes
        ├── com
        │   └── test
        │       └── spring
        └── log4j.xml

(我删除了.XXX文件/文件夹,只删除了eclipse的元数据)

基本上,对你提问:

  1. 典型的src/webapp/WEB-INF是maven方式,WebContent/WEB-INFWTP方式。建议使用maven方式。
  2. 同样build/是由eclipse生成的,target/是maven方式,你可以忽略它。
  3. 对于问题2 src/mian/resources是将编译到target/classes文件夹的maven方式。并且'src / main / webapp / resources'用于某些静态资源。
  4. 对于问题3 ,实际上所有第三方库都包含在WEB-INF/lib包之后,因此您可以将库放入此文件夹,无论是否使用maven。 / LI>