软件开发定制定制Maven工程开发

目录


一、Maven工程开发_构建Maven工程

软件开发定制定制接下来我们构建一个Maven的Web工程:

打开 idea,软件开发定制定制选择创建一个新工程 

 

选择Maven工程,并使用maven的web工程模板

 

点击 Next 软件开发定制定制填写项目信息(软件开发定制定制所谓的公司名其实就是软件开发定制定制前两个包的包名)

点击 Next,软件开发定制定制此处不做改动,点击Finish构建项目

 

手动添加src/main/java目录,此时该目录还不能写Java代码。

将src/main/java目录设置为Java代码目录。

二、Maven工程开发_pom文件配置

pom文件最上方是项目基本信息:

 

groupId

groupId一般定义项目组名,命名规则使用反向域名。例如com.itbaizhan

artifactId

artifactId一般定义项目名,命名使用小写字母。项目发布后,它的坐标是groupId+artifactId。

version

version定义版本号。版本号一般有三段,第一段:革命性的产品升级。第二段:新功能版本。第三段:修正一些bug。

packaging

packaging定义打包方式。

<properties>中定义一些配置信息:

 

<dependencies>中定义依赖的jar包坐标:

由于项目是web项目,需要写Servlet和JSP,所以需要引入Servlet和JSP的依赖。查找依赖坐标的网站:

 

<dependencies>

  <dependency>

    <groupId>junit</groupId>

    <artifactId>junit</artifactId>

    <version>4.11</version>

    <scope>test</scope>

  </dependency>

  <!-- jsp -->

  <dependency>

    <groupId>javax.servlet.jsp</groupId>

<artifactId>jsp-api</artifactId>

    <version>2.2</version>

  </dependency>

  <!-- servlet -->

  <dependency>

    <groupId>javax.servlet</groupId>

    <artifactId>javax.servlet-api</artifactId>

    <version>3.0.1</version>

  </dependency>

</dependencies>

为什么之前的web项目中没有引入jsp和servlet的jar包?

因为之前项目中使用的是tomcat中的jsp和servlet中的jar包,在项目中没有引入。

<plugins>中定义第三方插件:

web项目依赖tomcat运行,所以添加tomcat7插件

<plugins>

  <!-- tomcat插件 -->

  <plugin>

    <groupId>org.apache.tomcat.maven</groupId>

    <artifactId>tomcat7-maven-plugin</artifactId>

    <version>2.1</version>

    <configuration>

      <port>8080</port>

      <path>/</path>

      <uriEncoding>UTF-8</uriEncoding>

      <server>tomcat7</server>

    </configuration>

  </plugin>

</plugins>

三、Maven工程开发_编写代码

接下来编写Servlet和Jsp代码:

@WebServlet("/demo1")

public class MyServlet extends HttpServlet {

  @Override

  protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

    req.getRequestDispatcher("hello.jsp").forward(req,resp);

   }

}

<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<html>

  <head>

    <title>测试</title>

  </head>

  <body>

    <h1>你好,大学牲!</h1>

  </body>

</html>

运行项目,按照如图步骤,配置使用maven中的tomcat7插件运行项目:

 

 点击OK后配置完成,点击Idea的运行符号即可使用maven中的tomcat7插件运行项目。

Maven使用tomcat7运行项目的命令为:tomcat7:run

四、Maven工程开发_依赖范围

访问servlet后,发现报500异常,这是为什么呢?

 

这是由于项目中引入了Servlet和Jsp的jar包,而在项目运行时,Tomcat要使用它自带的Servlet和Jsp的jar包,这样就造成了jar包冲突。但如果项目不引入Servlet和Jsp的jar包,则根本无法通过编译。

此时可以设置依赖的作用范围解决该问题,设置Servlet和Jsp的jar包只在编译期起作用,运行时不起作用,这样不仅可以通过编译,还能在运行时避免jar包冲突。

通过在<dependency>中添加<scope>,可以设置依赖的作用范围,有以下取值:

compile

默认范围。表示该依赖在编译和运行时生效,项目打包时也会将该依赖打包进去。

provided

使用此依赖范围的Maven依赖,编译和测试时有效,但在运行时无效。典型的例子是servlet-api,在运行时Web容器已经提供依赖,就不需要Maven重复地引入一遍。

runtime

runtime范围表明编译时不需要生效,而只在运行时生效。典型的例子是JDBC驱动包,编译时只需要JDK的JDBC接口即可,只有运行项目时才需要具体的JDBC驱动。

test

test范围表明使用此依赖范围的依赖,只在编译和运行测试代码的时生效,程序的正常运行不需要此类依赖。典型的例子就是JUnit,它只有在编译测试代码及运行测试的时候才需要。

system

如果有些你依赖的jar包没有Maven坐标的,它完全不在Maven体系中,这时候你可以把它下载到本地硬盘,然后通过system来引用。(不推荐使用)

  • 所以对于Servlet和Jsp依赖,我们添加依赖范围为provided即可。

<dependency>

  <groupId>javax.servlet.jsp</groupId>

  <artifactId>jsp-api</artifactId>

  <version>2.2</version>

  <scope>provided</scope>

</dependency>

<dependency>

  <groupId>javax.servlet</groupId>

  <artifactId>javax.servlet-api</artifactId>

  <version>3.0.1</version>

  <scope>provided</scope>

</dependency>

重启项目,即可正常访问Servlet和Jsp。

所以,你们学废了吗?

 分享一下我最喜欢的星空图!!!

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发