关闭

用MyEclipse开发一个简单的MVN项目

标签: myeclipsemaven
540人阅读 评论(0) 收藏 举报
分类:

今天看了Maven,感觉这个在实际大型项目开发时的确有可取之处,所以试着照着示例动手开发一下。

MyEclipse中自动集成了Maven4Myclipse,所以不用像Eclipse一样需要install插件。但还是要在Windows-Preferences中选择安装目录及其他设置,最重要的就是把内置的Mavne替换为Apache官网上下载的,与JDK类似,在MyEclipse->Maven4MyEclipse->Installations中add一个本地mavne的目录并勾选。




配置完毕即可开始Maven Project的开发。从菜单栏File中选择new的other选项,选择对话框中的Maven Project,下一步使用默认的workspace即可。之后便要选择Archetype。在这里我选择GroupId为org.apache.maven.archetypes,ArtifactId为maven-archetype-webapp的原型。如图


下一步输入项目参数,配置GroupId,ArtifactId,Version,Package等,还可添加额外的Properties,当然这些以后可以通过pom.xml修改。生成项目目录结构及pom.xml如下

 

接下来在main文件夹下添加一个存放源码的文件夹java,与package名相对应。接下来在src/main/java中添加一个class。如果添加的类似一个servlet则会报错,原因是pom中没有配置依赖。在pom.xml中添加依赖配置项,其中java,servlet,jsp,jstl的配置如下:

<dependency>
    <groupId>javax</groupId>
    <artifactId>javaee-web-api</artifactId>
    <version>7.0</version>
    <scope>test</scope>
    </dependency>
    <dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.0.1</version>
    <scope>provided</scope>
    </dependency>
    <dependency>
    <groupId>javax.servlet.jsp</groupId>
    <artifactId>jsp-api</artifactId>
    <version>2.1</version>
    <scope>provided</scope>
    </dependency>
    <dependency>
    <groupId>jstl</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2</version>
    <scope>provided</scope>
    </dependency>

之后servlet中由于导入了HttpServlet类就没有报错了。再在pom中添加tomcat的配置信息,在<build>下添加以下代码:

<plugins>
    <plugin>
    <groupId>org.apache.tomcat.maven</groupId>
    <artifactId>tomcat7-maven-plugin</artifactId>
    <version>2.2</version>
    </plugin>
</plugins>

即可完成tomcat配置。我写的类是一个简单的servlet,负责输出"hello world",代码如下:

package org.zachary;


import java.io.IOException;
import java.io.PrintWriter;


import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


public class HelloServlet extends HttpServlet{
public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException{
PrintWriter out = response.getWriter();
out.println("Hello World");
out.flush();
out.close();
}
}

项目名右键Run As->Maven Build..,选择Goals为tomcat7:run,可选skip tests,最后点击run运行。

结果报错:-Dmaven.multiModuleProjectDirectory system propery is not set. Check $M2_HOME environment variable and mvn script match.

百度之发现maven配置有点问题。cmd中mvn正常,可以把它配置到jdk里,在Window->Preference->Java->Installed JREs->Edit,Default Vm arguments中设置

-Dmaven.mutiModuleProjectDirectory=$M2_HOME

其中$M2_HOME为配置的环境变量,即maven的目录,修改之后再尝试运行,上面的错误消失但是执行出错。原来是因为pom中配置javaee-web-api为7.0,而生成项目文件时自动添加J2SE-1.5的类库,所以删除替换为本地的JDK1.7.0_40,运行果然成功!


另外一点小小的体会:Maven在开启tomcat时只需在pom.xml中配置好plugin,jetty也类似,但是要注意pom.xml中各项的配置,这点尤为重要。


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:43389次
    • 积分:699
    • 等级:
    • 排名:千里之外
    • 原创:33篇
    • 转载:2篇
    • 译文:0篇
    • 评论:1条
    文章分类
    最新评论