maven编译问题:maven编译成功,eclipse文件未编译
我们先来看一个正常的编译流程:
1、从svn上检出一个项目;
2、看该工程是否为maven项目,不是则先转为maven项目:右键单击项目,选择configure->Convert to Maven project
3、用maven编译该项目:右键单击项目,选择Run As->Maven install
以上流程做完,maven打包成功,那么恭喜你,你检出的项目已经可以发布,代码已经编译。但我遇到的问题是,执行Maven install没问题,编译动作也执行了,到输出目录target\classes下也有编译后的class文件,但在eclipse下就是没有编译过的java文件,java图标是空心的。反复折腾了许久,均无法解决问题。比如:右键单击项目,选择properties->Project Facets,选择java后,才能在右键单击项目选择Build Path,然后配置依赖的jar,但无法加载Maven Dependencies,编译是可以了,但全是红叉,漫山遍野的红叉。
最后分析了下,我从svn检出的是一个项目包叫pilingservice,它除了带有pom.xml文件之外,就是4个目录,而这4个目录其实就是4个子项目,他们也都带有各自的pom.xml,结构如下:
pilingservice
|———— piling-api
|———— piling-client
|———— piling-core
|———— piling-war
|———— pom.xml
我正常编译的时候其实跑的是pilingservice下的pom.xml,它里面的配置如下:
<modules>
<module>piling-api</module>
<module>piling-core</module>
<module>piling-war</module>
<module>piling-client</module>
</modules>
右键单击pilingservice项目,选择Run As->Maven install,会根据pilingservice的pom文件去编译piling-api、piling-client、piling-core和piling-war这4个子项目,然后输出他们编译后的包,但是eclipse里这4个子项目的java文件仍是未编译的(java文件图标是空心的)。如果我不是整个pilingservice检出,而是单独检出piling-api,按正常流程编译,java文件的图标是实心的,因为这时候跑的是piling-api项目自己的pom文件。其他子项目也是一样的。
根据eclipse检出时的情况看(见下图),只有pilingservice是maven项目,子项目都还不是:

解决办法有两个,一个是不要通过eclipse的SVN插件检出,直接从本地SVN检出,然后通过File -> Import导入到eclipse,并且导入方式选择Maven -> Existing Maven Projects;一个是从eclipse的SVN检出后,右键点击Services项目,选择Import -> Maven -> Existing Maven Projects -> 选择所有子项目,点击finish,按正常编译后如下图:

maven编译问题:maven编译成功,eclipse文件未编译的更多相关文章
- 【maven】架包下载失败,maven引入架包失败,pom文件未报错,但是引用的注解找不到
出现这种问题 看到这个jar包显示是unkown,不知道版本,所以这样的解决方法就是 1.先查看maven设置是使用的自定义的仓库还是默认的仓库 2.删除掉你引用的jar包下载失败的文件夹 3.然后重 ...
- Eclipse安装反编译工具JadClipse
记录一下安装Eclipse的反编译插件JadClipse的过程: 1.首先准备: 1)JadClipse插件,从网站http://sourceforge.net/projects/jadclipse/ ...
- Linux下多个.c文件的编译和Makefile文件
在编程的时候,我们可以把一个完整程序的每个函数分离出来,写成.c文件,最后再一起编译和链接.这样有利于程序功能模块化,也方便检查代码错误. .h文件:里面编辑该程序需要引用的头文件. #ifndef ...
- 创建预编译头 Debug 正常 Release Link Error:预编译头已存在,使用第一个 PCH
创建预编译头 Debug 正常 Release Link Error Main.obj : error LNK2005: ___@@_PchSym_@00@UmfilkilqUdrmzkkUkilqU ...
- maven本地仓库中存在jar包,但编译不成功,显示jar包不存在
介绍一下背景,项目要迁移进坑人的离线的内网开发,将在同事那编译通过的代码和maven仓库拷进内网,打算编译通过之后再上传私服,结果配好maven之后,本地库中的部分jar包显示没有引入,如下面的波浪线 ...
- 运行maven pom.xml文件后编译环境变为jdk1.5
idea中运行pom.xml文件后,将编译环境变成了1.5,造成一系列的编译问题很是不方便. 以下是解决方法: 在"pom.xml"里加入如下代码: <properties& ...
- maven编译问题-maven项目运行时找不到文件,解决方案之一
问题描述:以上信息是tomcat在启动项目的时候报的错误信息,发现没有找到配置文件,实际上配置文件在项目中是存在的,但是,在编译过程中,配置文件没有能加载到编译后的项目中.就造成了,找不到这些怕配置文 ...
- intellij 编译 springmvc+hibernate+spring+maven 找不到hbm.xml映射文件
1. 错误信息 Invocation of init method failed; nested exception is org.hibernate.MappingNotFoundException ...
- sqpark编译时maven的pom文件内容(org.apachetype.maven.apachetypes:maven.archetypequickstat)
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://mave ...
随机推荐
- SSL和SSH的区别
SSL是一种国际标准的加密及身份认证通信协议,您用的浏览器就支持此协议.SSL(Secure Sockets Layer)最初是由美国Netscape公司研究出来的,后来成为了Internet网上安全 ...
- 腾讯开源手游热更新方案,Unity3D下的Lua编程
原文:http://www.sohu.com/a/123334175_355140 作者|车雄生 编辑|木环 腾讯最近在开源方面的动作不断:先是微信跨平台基础组件Mars宣布开源,腾讯手游又于近期开源 ...
- shell read 命令 (转)
read命令 -p(提示语句) -n(字符个数) -t(等待时间) -s(不回显) 1.基本读取read命令接收标准输入(键盘)的输入,或其他文件描述符的输入(后面在说).得到输入后,read命令将数 ...
- Xcode export/upload error: Your session has expired. Please log in 解决方法
问题: 突然打包账号不好使了 重登 重启 清缓存 一套都打完了 还是不好使 解决方法: 删除掉其他账号 重新登录 参考网址 http://stackoverflow.com/ques ...
- elasticsearch负载均衡节点——客户端节点 node.master: false node.data: false 其他配置和master 数据节点一样
elasticSearch的配置文件中有2个参数:node.master和node.data.这两个参 数搭配使用时,能够帮助提供服务器性能. 数据节点node.master: false node. ...
- 面试题48:用C++设计一个不能被继承的类
解法一:把构造函数设为私有 将构造函数定义为私有,然后通过定义公有的静态函数来创建和释放类的实例. { public: static SealedClass1* GetInstance() { ret ...
- CoreData / MagicalRecord
CoreData 之前在学习使用SQLite时, 需要编写大量的sql语句,完成数据的增删改查,但对于不熟悉sql语句的开发人员来说,难度较大,调试程序比较困难.由此出现CoreData框架,将sql ...
- css3 hover 的一些小效果
Hover 2D Transforms Grow Shrink Pulse Pulse-grow Pulse-shrink Push Top Rotate Grow-rotate Float Sink ...
- About toupper()
// toupper.c #include <stdio.h> #include <string.h> #include <ctype.h> int main() ...
- 采用Spring管理Bean和依赖注入
1. 实例化spring容器和从容器获取Bean对象 实例化Spring容器常用的两种方式: 方法一: 在类路径下寻找配置文件来实例化容器 [推荐使用] ApplicationContext ctx ...