eclipse中每次保存修改过的java文件,它都会重新编译,编译后的文件就放在build path里的Output folder。或者是xml文件.properties文件等都会将新内容放到输出文件夹。而build path的libraries中的jar包是保证这些类的成功编译。
然后将项目发布在server上,eclipse会从deplyment assembly中获取要发布的内容,当然发布不需要源码,只需要class文件,这些class文件就是从上面放置编译好的class文件的输出文件夹寻找。比如deployment assembly中将src/main/java中的类及配置文件发布到WEB-INF/classes下,那去哪里找这些class文件呢?就是在build path中看到test/src/main/java的输出文件夹是/test/target/classes,那就会到计算机上项目路径寻找项目src/main/java目录下的java文件对应的class文件并放入到WEB-INF/classes中(target/classes在eclipse的Project Explorer中可能看不见在计算机项目目录中能看到)。
server右键中有个clean的选项,它的作用是将发布到eclipse自己的webapps目录(一般自动命名为wtpwebapps)中的项目删掉重新从output folder中拉取。比如我把target/classes中的一个编译好的class文件删除掉,当然这时候java文件还是在的,那我clean一下项目,就会报如下错误。
clean tomcat work directory的作用则是将已发布项目中存放jsp转译后的class文件的work目录删除