在Eclipse web項目右鍵 -> Build path -> Configure Build Path -> Order and Export
先描述一下問題
問題一:
在eclipse maven項目中,可以看到src/main/java這個源包沒有顯示在第一行,左邊目錄結構的顯示順序跟Order and Export的顯示順序是一樣的
由此可見,Order and Export的第一個作用是決定左邊工程目錄結構的顯示順序
問題二:
如果工程目錄的顯示順序如上所示,此時將工程發布至tomcat並運行,發現控制台報各種ClassNotFoundException
來到tomcat發布目錄下查看,一般是在 .metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps
發現WEB-INF\classes 目錄下都是空文件夾,編譯后的class文件都沒有發布過來,tomcat自然找不到class,所以報錯。
此時再將src/main/java目錄顯示在最上面並apply,重新發布,發現WEB-INF\classes目錄下有了編譯后的class文件,此時再啟動tomtcat,一切正常
由此可見,Order and Export的第二個作用是決定web工程class文件、配置文件、jre/maven依賴的發布順序
總結
Order and Export 包含兩部分
Order:左邊工程目錄排序顯示
Export:Tomcat發布順序
至於為什么將src/main/java放到后面發布就會導致class文件發布不出去,現在還沒弄清楚原因