我们先来看一个正常的编译流程:

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文件未编译的更多相关文章

  1. 【maven】架包下载失败,maven引入架包失败,pom文件未报错,但是引用的注解找不到

    出现这种问题 看到这个jar包显示是unkown,不知道版本,所以这样的解决方法就是 1.先查看maven设置是使用的自定义的仓库还是默认的仓库 2.删除掉你引用的jar包下载失败的文件夹 3.然后重 ...

  2. Eclipse安装反编译工具JadClipse

    记录一下安装Eclipse的反编译插件JadClipse的过程: 1.首先准备: 1)JadClipse插件,从网站http://sourceforge.net/projects/jadclipse/ ...

  3. Linux下多个.c文件的编译和Makefile文件

    在编程的时候,我们可以把一个完整程序的每个函数分离出来,写成.c文件,最后再一起编译和链接.这样有利于程序功能模块化,也方便检查代码错误. .h文件:里面编辑该程序需要引用的头文件. #ifndef  ...

  4. 创建预编译头 Debug 正常 Release Link Error:预编译头已存在,使用第一个 PCH

    创建预编译头 Debug 正常 Release Link Error Main.obj : error LNK2005: ___@@_PchSym_@00@UmfilkilqUdrmzkkUkilqU ...

  5. maven本地仓库中存在jar包,但编译不成功,显示jar包不存在

    介绍一下背景,项目要迁移进坑人的离线的内网开发,将在同事那编译通过的代码和maven仓库拷进内网,打算编译通过之后再上传私服,结果配好maven之后,本地库中的部分jar包显示没有引入,如下面的波浪线 ...

  6. 运行maven pom.xml文件后编译环境变为jdk1.5

    idea中运行pom.xml文件后,将编译环境变成了1.5,造成一系列的编译问题很是不方便. 以下是解决方法: 在"pom.xml"里加入如下代码: <properties& ...

  7. maven编译问题-maven项目运行时找不到文件,解决方案之一

    问题描述:以上信息是tomcat在启动项目的时候报的错误信息,发现没有找到配置文件,实际上配置文件在项目中是存在的,但是,在编译过程中,配置文件没有能加载到编译后的项目中.就造成了,找不到这些怕配置文 ...

  8. intellij 编译 springmvc+hibernate+spring+maven 找不到hbm.xml映射文件

    1. 错误信息 Invocation of init method failed; nested exception is org.hibernate.MappingNotFoundException ...

  9. sqpark编译时maven的pom文件内容(org.apachetype.maven.apachetypes:maven.archetypequickstat)

    <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://mave ...

随机推荐

  1. 【bzoj5452】[Hnoi2016]大数(莫队)

    题目传送门:https://www.lydsy.com/JudgeOnline/problem.php?id=4542 首先若p=2,5则这题就是道傻逼题,前缀和搞一下没了.如果p为其他质数,那么可以 ...

  2. DFS - 深度搜索 - 基于邻接列表表示法

    2017-07-25 15:38:00 writer:pprp 在前一篇图基于邻接列表表示法的代码加了一小部分,加了一个DFS函数,visited[N]数组 参考书目:张新华的<算法竞赛宝典&g ...

  3. 服务器状态监控之snmp&ipmi

    一.ipmi 1.简介 IPMI(Intelligent Platform Management Interface)即智能平台管理接口是使硬件管理具备"智能化"的新一代通用接口标 ...

  4. 红米手机.驱动.XP安装

    1.发现 官网上下载的 驱动在 XP下安装不上去... (Win7 记得 貌似 没有问题...) 1.1.网上搜到的 解决方案为:解决手机不能连电脑 XP系统无法安装MTP设备驱动的终极解决_小米No ...

  5. SEO提高网站排名快速见效的方法

    SEO如何提升网站排名?seo中文名称搜索引擎优化,是提升网站排名的一种技术手段,常用的手段就是优化标签,内链外链等等,最核心的优化方向,“关键词”.最常见的表现形式就是软文,但是有的时候就算你做了很 ...

  6. EF6 Code First 系列 (四):SQLite的DropCreateDatabaseIfModelChanges和乐观并发控制

    没什么好说的,能支持DropCreateDatabaseIfModelChanges和RowVersion的Sqlite谁都想要.EntityFramework7正在添加对Sqlite的支持,虽然EF ...

  7. Python SQL相关操作

    环境 Anaconda3 Python 3.6, Window 64bit 目的 从MySQL数据库读取数据,进行数据查询.关联 代码 # -*- coding: utf-8 -*- "&q ...

  8. pOJ-1061 exgcd求同余方程组

    链接 就是求(m-n)*a+b*l=y-x, 类似于求解a*x+b*y=c,r=gcd(a,b),当c%r==0时有解,用exgcd求出a*x+b*y=gcd(a,b)的解,然后x*c/gcd(a,b ...

  9. Codeforces Round #448 (Div. 2)C. Square Subsets

    可以用状压dp,也可以用线型基,但是状压dp没看台懂... 线型基的重要性质 性质一:最高位1的位置互不相同 性质二:任意一个可以用这些向量组合出的向量x,组合方式唯一 性质三:线性基的任意一个子集异 ...

  10. Java实现数组去除重复数据的方法详解

    一.用List集合实现 int[] str = {5, 6, 6, 6, 8, 8, 7,4}; List<Integer> list = new ArrayList<Integer ...