1. Eclipse中新建MAVEN webapp项目后只有src/main/resources一个目录
描述:
解决方案:
配置下项目的Java Build Path中的JRE/JDK就可以解决了。
2016-09-04更新
- 先删除Java Build Path 中的Libraries 中的JRE/JDK ,然后保存就可以看到目录了。
- 然后再配置Java Build Path 就可以了;或者用Maven更新(要在pom.xml中配置正确的maven-compiler-plugin的Java版本)。
Tips:
使用Eclipse时注意看Problems view,可以清楚的找到问题描述与解决方案。
2. Cannot change version of project facet Dynamic Web Module to X.X
描述:
如果web.xml和Project Facets中的Dynamic Web Module的Version不同就会出现此问题,简单将两个修改为相同行不通,因为设置Dynamic Web Module的Version时候会拒绝并报错如题。
解决方案:
将.settings中的org.eclipse.wst.common.project.facet.core.xml中的配置修改后,直接保存并Maven -> Update Project…更新项目就可以了。
3. 本地新建一个Maven webapp上传到github上管理起来
描述:
Eclipse中的Maven项目怎么跟github上的git库联系起来
解决方案:
- 首先在github/oschina中建一个repository;
- 然后使用Eclipse自带的git插件(没有的话自己安装,是Egit)将github上的库clone到本地;
- 在Eclipse中建一个Maven项目,随便自己个性化配置;
- 然后右键项目先择:Team -> Share Project… -> GIT -> 然后如下图选择以下Repository -> Finish
4. Eclipse中的项目构建方式、项目描述文件、MAVEN webapp项目的理解
描述:
- Eclipse使用xml文件来描述其所管理的项目。
- xml的扩展名有.classpath、.project等等。
具体:
- .classpath告诉Eclipse类路径有哪些
- kind=”src”指定项目自身源码路径以及class输出路径。
- kind=”con”指定一些容器的class所在(jre/servlet/MVN等)。
- kind=”lib”指定使用的第3方库class所在(MVN项目一般没有)。
- kind=”output”指定整体class输出目录。
- .project告诉Eclipse这个项目的类型以及使用到的构建插件
- <nature>org.eclipse.m2e.core.maven2Nature</nature>用于告诉Eclipse本项目使用的MVN插件来构建,所以右键就能有Maven选项了。
- 其它等等都是这个作用。
- .settings文件夹中的xml们用来具体告诉Eclipse在.project中的那些插件的配置。
Tips:
- 使用Eclipse中Server插件来运行tomcat时,Server就会去读.classpath和.settings中的文件,来确保Server能找到所有的class和知道context-root等信息。
- 如果项目的信息都动态配置在pom.xml中,需要Server能够知道的话,就需要使用Maven来更新一下项目。你可以明白:使用Project -> clean之类肯定不行,因为MVN项目需要MVN插件来构建。
5. 版本冲突解决策略
描述:
Maven的版本冲突解决策略是:
在dependency tree中by default Maven resolves version conflicts with a nearest-wins strategy.
也就是说在依赖树中(所有声明的依赖是第一级),深度越深权限越低。可以被理解的具体例子,可以在上面的地址中看到。
那么如何自己决定依赖呢?
解决方案:
很简单,在不需要的版本的引用的地方使用
exclusions
即可<dependency> <groupId>com.xxx</groupId> <artifactId>some-artifactId</artifactId> <exclusions> <exclusion> <groupId>com.yyy</groupId> <artifactId>yyy-api</artifactId> </exclusion> </exclusions> </dependency>