我们都知道,在一个典型的Maven项目中,编译后的class文件默认是放在targert/classes目录下的。但是我今天碰到一个比较奇怪的问题,在Eclipse中我通过import exsiting maven projects的方法,导入了2个maven的project,一个是非web project,另一个是web project。 在web project的target classes中,并没有我们期望的Class文件,所以部署到Eclipse的tomcat中时,在WEB-INF/classes中也没有对应的Class类。可能的原因有如下多个原因,希望大家可以对号入座:
1. 执行maven的命令,mvn clean install -DskipTests可以编译成功,在target/classes中可以看到相关的Class文件,但是如果在Project/Clean中clean相关的Project时,还需要重新使用mvn clean install -DskipTests重新生成Class文件(target/classes会被删除)
2. 执行mvn eclipse:clean eclipse:eclipse命令,并刷新后可以看到该Maven的Project变成了一个真正的常规的java的web project(在Project的icon上后有一个小圆球),这时,即使是使用Project/Clean后,也会在target/classes中重新自动生成Class类文件。(原因是一般的eclipse的项目空间有.project和.classpath两个文件.执行eclipse:eclipse就是让maven的eclipse插件把.classpath内的jar引用地址重新更新一遍. eclipse:clean就是删除所有eclipse项目文件再用eclipse:eclipse重建。)
但是你可能会碰到一个更加严重的问题,就是在Eclipse的Tomcat的wtpwebapps目录中不会有该web项目,换句话说,就是该项目不能被成功的部署到Eclipse的Tomcat中,这很有可能的原因是Deployment Assembly(程序部署集)或者是Project Facets属性存在问题,参照该篇博文以解决怎样设置Project Facets或者是Deployment Assembly,我碰到的问题是Deployment Assembly属性不存在,当我参照该博文(http://josh-persistence.iteye.com/admin/blogs/1926808)将Deployment Assembly配置成功后,部署也成功了。
另外除了上面我碰到的原因之外,实际开发中,你有还可能存在如下的原因:
在开始之前,查看Eclipse的problems view,里面可能会告诉相关的错误的原因,一般来说,可能有如下几种情况:
1). 确保 project->build automatically已经被选上.
2). project->clean..->选第2个clean select project, 勾上start build immediatelly
3).删除现在的项目, 重新导入源文件,设置eclipse为保存时编译,然后在保存的时候就可以自动编译了
4).如果项目里引了某个不用的jar包,而那个包又被你删了,就会出现不报错但怎么也编译不出来class文件的情况,可以把所有包都删除,然后一个一个的再引入(需要的),不要一下子把所有包都引入来,没用的可能会引起不良后果.
5). 想删掉某个class文件重新生成,删除class文件后,但classes目录下的文件夹被其它程序打开,比如SublineText。此时编译也不会通过,在problems下可能会提示“con''t delete classes ……”。关掉其它程序重新编译即可。
6).remove掉 JRE System Library,重新导入即可编译。
7).把build path中所有包都remove掉。然后又add jars,add libraries把需要的加进去。
8).project->properties->java build path->source->.../WEB-INF/src的output folder不要默认,编辑让它指向../WEB-INF/classes然后重新点击build工程即可自动编译。
9).如果你的项目是CVS进行版本控制的项目,查看工程下面是否缺少了work目录,由于CVS控制时不把work加如版本,所以 checkout后没有这个目录,要手工加上有的工程就能自动编译了
相关推荐
1. src/main/java:存放Java源代码的文件夹,发布项目时将该文件夹下的class文件复制到WEB-INF/classes目录下。 2. src/main/resources:存放配置文件、xml、properties文件等的文件夹,发布项目时该文件夹的文件也...
总结来说,Eclipse中.java文件编译后的.class文件通常位于项目的"bin"或"classes"目录下,可以通过"Java构建路径"的设置查看或修改。批处理文件可以用来方便地列出这些文件,而Eclipse的"Package Explorer"视图则...
- **检查Servlet配置**:确保`web.xml`文件中正确地映射了每个Servlet,并且对应的`.class`文件存在于`WEB-INF/classes`目录下。 - **验证JSP与Servlet的关系**:JSP页面中的表单提交路径应与Servlet的URL模式匹配,...
然而,在某些情况下,可能会遇到主项目(比如这里的A项目)在编译成一个独立的JAR文件后,无法正确扫描并加载来自子项目(如B项目)中的注解的情况。本文将详细介绍这一问题的原因以及如何通过调整Maven配置来解决这...
编译后的`.class`文件默认保存路径是`Contentdirectory`目录下的`WEB-INF/classes`。 #### 三、Maven项目的代码结构 **1. Maven项目结构:** - **新建Maven项目:** - Maven是一个项目管理和综合工具,可以自动化...
在"WEB-INF/classes"目录下,Eclipse会自动编译Java源代码生成对应的class文件。 为了实现动态网页,还需要配置JSP(JavaServer Pages)支持。在Eclipse中,右键点击项目,选择“Build Path” -> “Configure Build...
5. **确认编译路径**:确保编译输出路径正确设置,一般为`XXX/web/WEB-INF/classes`。这里需要根据实际项目结构进行调整。 ##### 方法二:添加JRE的Jar包 1. **打开项目属性**:同样地,在项目上右键点击,选择...
将maven的项目重新编译,在项目中右击,可以pom上右击,可以将pom(目录)下面的jar和war重新编译 如果出现以上情况,说明下载的jar包有问题,把这下面的文件删除,重新下载 每创建一个项目,都有pom.xml,所有的配置都...
- 在弹出的对话框中选中对应的模块名称,这样就可以把编译后的class文件自动加入到`WEB-INF/classes`目录下。 5. **解决可能遇到的问题**: - 如果在配置过程中出现错误提示,可以尝试点击右下角的`Fix`按钮来...
2. **编译更新:** Eclipse会自动编译修改后的Java代码,并将新生成的`.class`文件替换到`WEB-INF/classes`。 3. **资源更新:** 对于Web资源的更改,如HTML、CSS、JavaScript等,同样会在不重启服务器的情况下自动刷新...
该文件位于`src/main/webapp/WEB-INF`目录下。需要配置的内容包括Servlet容器的初始化参数、过滤器等。 ```xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi=...
这是因为Eclipse将编译后的class文件放在WEB-INF/classes目录下,而JSP文件位于WebRoot目录,所以可以直接指向WebRoot作为虚拟目录,避免了频繁的打包和发布过程。 总结起来,通过Eclipse和Maven的结合,我们可以...
这些文件需要放在`WEB-INF/classes`目录下,或者如果使用了JAR文件,则放在`WEB-INF/lib`目录中。 3. **Tomcat服务器配置**:确认你的Tomcat服务器已正确安装并且运行。检查`server.xml`文件中的`Context`元素,...
6. `build`:构建目录,可能包含编译后的class文件、编译过程中的临时文件等,这在Maven或Gradle等构建工具中很常见,但Eclipse项目通常将编译结果放在`WebContent/WEB-INF/classes`下。 通过这些文件,我们可以...
- `WebContent/WEB-INF/classes`:存放编译后的class文件。 - `WebContent/WEB-INF/lib`:存放第三方库的jar包。 - `WebContent/WEB-INF`:存放web.xml等Web应用配置文件。 #### 四、添加Spring支持 1. **引入...
5. **项目结构**:通常,SSH项目的目录结构包括src/main/java(存放Java源代码)、src/main/resources(存放配置文件)、Web-INF/web.xml(Web应用配置文件)、WEB-INF/classes(编译后的class文件)和lib(存放第三...
3. **复制 class 和 jar 文件**:将编译后的 `.class` 文件放到 `TOMCAT_HOME/webapps/axis/WEB-INF/classes` 目录下,并将依赖的 jar 包放入 `TOMCAT_HOME/webapps/axis/WEB-INF/lib`。 4. **部署配置文件**:在 `...
2. **构建项目**:使用IDE(如Eclipse、IntelliJ IDEA)或命令行工具(如Maven或Gradle)将源代码编译为class文件,生成到`WEB-INF/classes`目录下。 3. **配置web.xml**:在`web.xml`中配置Struts2的核心过滤器`...