我们先来看一个正常的编译流程:
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检出的是一个项目包叫Services,它除了带有pom.xml文件之外,就是3个目录,而这3个目录其实就是3个项目,他们也都带有各自的pom.xml,结构如下:
Services
|———— ms-A
|———— ms-B
|———— ms-C
我直接跑的是Service下的pom.xml,它里面有这样的配置:
<modules> <module>ms-A</module> <module>ms-B</module> <module>ms-C</module> </modules>
右键单击Services项目,选择Run As->Maven install,会编译ms-A、ms-B和ms-C,然后输出他们编译后的包,但是eclipse里的java文件仍是未编译的。我单独检出ms-A按正常流程编译,java文件的图标才是实心的。当然另外两个也是一样的,至于你要问我为啥在Services里编译就不行,那我只能告诉你,我现在也还不知道。有知道的同学请指教一下,多谢。