2012-09-17 57 views
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)創建項目。它創建了這樣一個目錄結構:Spring MVC Maven Eclipse Juno STS 3.0.0項目在哪裏?

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/

我希望能夠從Eclipse Juno以及使用Maven的命令行自動構建和部署,因此問題1是:如何清理此目錄結構?

問題2:src/main/resources/src/main/webapp/resources有什麼區別?我如何選擇將哪個目錄放入給定的靜態資源?

問題3:如果我有需要包含的圖書館,我不能讓Maven獲得,我在哪裏放置它們?

回答

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是行家方式和WebContent/WEB-INFWTP方式。並建議使用maven方式。
  2. 另外build/是通過eclipse生成的,target/是maven的方式,你可以忽略這個。
  3. 對於問題2src/mian/resources是將被編譯到target/classes文件夾的maven方式。和'src/main/webapp/resources'用於某些靜態資源。
  4. 對於問題3,實際上所有的第三方庫在打包後都在WEB-INF/lib之內,所以你可以把你的庫放到這個文件夾中,不管是否使用maven。
+0

您的樹缺少WebContent /完全。我期望將libs放入WEB-INF/lib中,但是在佈局或我的目錄中沒有這樣的目錄。例如,與'src/main/resources/META-INF'相比,'WebContent/META-INF /'中有什麼?更重要的是,這是記錄在哪裏的? –

+0

是的,錯過了'WebContent /',因爲我使用了不同的版本。但這是WTP的方式,所以你可以忽略或只是刪除它,並按照maven的方式,這在使用maven時更方便。關於'META-INF',你應該把它放在'WEB-INF'中,或者放到'src/main/resources'文件夾中。 –