`
Josh_Persistence
  • 浏览: 1632460 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类

Eclipse中maven项目无法自动编译、编译失败、WEB-INF/classes目录中没有Class文件

阅读更多

      我们都知道,在一个典型的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后没有这个目录,要手工加上有的工程就能自动编译了

 

2
8
分享到:
评论

相关推荐

    eclipse-maven3-plugin Maven插件离线安装包

    1. 在你的 eclipse 安装的根目录下创建两个文件夹:links,plugins(名字可以随便取),我的这两个文件夹位于:path=D:/Development/eclipse-JavaEE/eclipse(作为参考,下面用到) 2. eclipse-maven3-plugin.7z ...

    eclipse-maven3-plugin

    eclipse-maven3-plugin插件 包含apache-maven-3.3.9和eclipse-maven3-plugin

    ECLIPSE MAVEN3插件文件(eclipse-maven3-plugin工具)

    ECLIPSE MAVEN3插件文件(eclipse-maven3-plugin工具)

    QQ 聊天机器人小薇 v2.2.2

    小薇是个不错的选择 安装:1、安装好 Java 1.7+、Maven 2+2、Clone 本项目,并在项目根目录上执行 mvn install3、使用 mvn jetty java -cp WEB-INF/lib/*;WEB-INF/classes org.b3log.xiaov.StarterUnix-likeWEB-INF...

    maven非标准jar的复制

    maven非标准jar的复制到WEB-INF/lib下面 maven非标准jar的复制到WEB-INF/lib下面 到WEB-INF/lib下面maven非标准jar的复制 maven非标准jar的复制到WEB-INF/lib下面 maven非标准jar的复制到WEB-INF/lib下面 maven非...

    jeecg-3.5.1-eclipse-非maven版本

    jeecg-3.5.1-eclipse-非maven版本jeecg-3.5.1-eclipse-非maven版本jeecg-3.5.1-eclipse-非maven版本jeecg-3.5.1-eclipse-非maven版本jeecg-3.5.1-eclipse-非maven版本jeecg-3.5.1-eclipse-非maven版本jeecg-3.5.1-...

    apache-maven-3.5.0

    方式2 新建配置(MAVEN_HOME),路径为是解压后的maven根目录,再在path中引用(%MAVEN_HOME%\bin),然后在cmd命令窗口中输入mvn -v,看是否有maven版本输出,有则配置正确。 注意maven3.3.9版本后,需要jdk版本是...

    eclipse-maven3-plugin.zip

    eclipse maven3插件,eclipse-maven3-plugin,m2e

    Maven在eclipse中的项目启动命令

    Maven在eclipse中的项目启动命令

    Maven打包,指定classes路径

    Maven打包,指定classes路径打包到WebContent/WEB-INF中

    netty-tcnative-classes-2.0.46.Final-API文档-中文版.zip

    赠送Maven依赖信息文件:netty-tcnative-classes-2.0.46.Final.pom; 包含翻译后的API文档:netty-tcnative-classes-2.0.46.Final-javadoc-API文档-中文(简体)版.zip; Maven坐标:io.netty:netty-tcnative-classes:...

    jeecg-framework3.4.3发布版本-eclipse-maven版本.zip

    jeecg-framework3.4.3发布版本-eclipse-maven版本.zipjeecg-framework3.4.3发布版本-eclipse-maven版本.zipjeecg-framework3.4.3发布版本-eclipse-maven版本.zipjeecg-framework3.4.3发布版本-eclipse-maven版本....

    Eclipse新建和部署maven项目

    Eclipse新建和部署maven项目,每一步都有详细的截图

    eclipse创建maven dynamic web 3.0项目教程

    本文档记录了本人用eclipse搭建maven dynamic web3.0的详细过程,包含了搭建maven项目,把maven项目转换为web项目,Dynamic web Module 2.3转换为3.0等内容

    eclipse maven3 plugin.zip

    直接离线安装eclipse中的maven插件,在你的eclipse安装根目录下创建两个文件夹:links,myplugins(文件夹名字可以自定义),所在路径D:\eclipse。将下载下来的maven插件放到myplugins下。载links目录下创建一个...

    Eclipse中Maven项目创建及相关操作

    Maven项目建立及相关知识教程,可供初学者了解使用Maven。

    maven的优缺点 项目

    将maven的项目重新编译,在项目中右击,可以pom上右击,可以将pom(目录)下面的jar和war重新编译 如果出现以上情况,说明下载的jar包有问题,把这下面的文件删除,重新下载 每创建一个项目,都有pom.xml,所有的配置都...

    eclipse 创建maven 项目 动态web工程完整示例

    eclipse 创建maven 项目 动态web工程完整示例,新建maven,到发布案列,从零开始学习

    Eclipse整合Maven开发教程

    本文面向具有eclipse相关开发经验的技术人员,一步步说明如果在eclipse中集成Maven进行开发。本教程是入门级教程,由于本站发表文章实在不便,故将word文档直接上传了。 目录 Eclipse整合Maven开发教程 1 1. ...

    maven tomcat7改造后插件

    在springMVC 项目中存在两个web项目,一个前台展示系统,一个后台管理系统,前台展示需要用到后台上传的图片,为了能让前台使用,那么就需要给前台tomcat配置静态资源路径,这是需要改造tomcat的插件包, ...

Global site tag (gtag.js) - Google Analytics