1

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

我使用 STS 3.0 Dashboard -> Spring Template Project -> 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/

这与我可以找到文档的任何目录布局都不匹配,而且它看起来肯定是错误的。比如为什么有 aWebContent/WEB-INF和 a src/webapp/WEB-INF?为什么 abuild/和 a都存在target/

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

src/main/resources/问题2:和有什么区别src/main/webapp/resources?如何选择放置给定静态资源的目录?

问题 3:如果我需要包含我无法让 Maven 获取的库,我应该将它们放在哪里?

4

1 回答 1

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-INF也是WTP方式。并建议使用maven方式。
  2. 也是build/由eclipse生成的,target/是maven方式,你可以忽略它。
  3. 对于Question2src/mian/resources是将编译到target/classes文件夹的 Maven 方式。'src/main/webapp/resources' 用于一些静态资源。
  4. 对于Question3,实际上所有的 3rd-party 库都在WEB-INF/libafter 包中,因此无论是否使用 maven,您都可以将库放入此文件夹中。
于 2013-05-10T04:57:37.603 回答