myeclipse自带了许多插件,因此使用频率很高,但是对maven框架下web程序似乎不是很好的支持,每次创建web程序总是会报一大堆的异常,因此特此记录一下如何在myeclipse下创建一个web工程。
1、创建一个maven项目,File→New→Project→Maven Project。
2、点击next,出现如下界面,注意不要选择第一个勾和第三个勾,第二个勾是用来选择工程目录,可以根据个人需要选择。然后再点击next。
3、选择Artifact Id为maven-archetype-webapp的一行,然后next。
4、设置工程的Group Id、Artifact Id、Version、Package,然后点击finish。
5、创建好的工程会如下图所示,项目左上角有一把小×
6、右键创建好的项目,选择Properties选项,然后选择Java Build Path→Source,可以如下图看到Source folders on build path下的第一行有个小×,这把×的意思是找不到src/main/java目录。
7、选中第一行,然后点击左侧的Remove,再点击Add Folder,出来如下页面,可以看到这里在src/main下没有java文件夹(在上一步被我们删掉了),然后点击Create New Folder,在弹出框中输入"src/main/java",再点击finish,然后点击ok,就可以看到src/main/java文件夹了,而且没有报错。
8、同理处理下面的src/test/java文件夹找不到的问题。
但要注意,不要让test下的java文件和main下的java文件编译在一个目录中。点击Output folder:,再点击edit,就可以看到它的输出目录。一般情况下,默认的是/targer/classes,这是主代码的存放目录,因此我们需要勾选下面一行,然后输入"target/test-classes",表示把test下的java文件编译后输出在/target/test-classes文件夹中。
9、然后再找到我们工程中报错的地方,index.jsp。这是由于工程中没有servlet的jar包,无法编译jsp文件(jsp文件会先被编译成class,实际上是由servlet输出在前端),在pom.xml中添加dependency。
<dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <scope>provided</scope> <version>2.5</version> </dependency>
10、最后一步,右键项目→Maven4MyEclipse→Update Project,勾选中对应的项目,然后点击ok。最后项目结构如下图。
11、注意你的maven版本,部分maven需要对应更高版本的jdk,如果运行程序提示jdk版本有问题,可以选择更换maven版本,或者使用最新的jdk也可以。
注意:
部分项目在被创建后,pom.xml中报错
错误信息为:
需要在pom的build内添加如下代码即可
<pluginManagement> <plugins> <plugin> <groupId>org.eclipse.m2e</groupId> <artifactId>lifecycle-mapping</artifactId> <version>1.0.0</version> <configuration> <lifecycleMappingMetadata> <pluginExecutions> <pluginExecution> <pluginExecutionFilter> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <versionRange>[2.0,)</versionRange> <goals> <goal>resources</goal> <goal>testResources</goal> </goals> </pluginExecutionFilter> <action> <ignore /> </action> </pluginExecution> </pluginExecutions> </lifecycleMappingMetadata> </configuration> </plugin> </plugins> </pluginManagement>