Eclipse java build path下Order and Export页签的作用
在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文件发布不出去,现在还没弄清楚原因