IDEA创建聚合项目详细步骤:(文后又github源码链接)

  • 重新编译指令
    点击两下ctrl +mvn clean compile
  • 清理字节码
    clean
  • 编译
    compile
  • 打包
    package
  • 打包然后安装到本地仓库
    install
  • 常用指令:
    mvn clean package -Dmaven.test.skip=true

1.创建maven 并配置 聚合项目

  1. File->New->Module 选择maven-archetype-site 创建聚合项目
    在pom.xml文件中 添加
<packaging>pom</packaging>

在这里插入图片描述

在这里插入图片描述

  1. 删除 src文件夹中的site文件夹
    在这里插入图片描述

  2. 创建crm-domaincrm-dao ,crm-service子项目 选择quickstart java 项目
    在这里插入图片描述

在这里插入图片描述

  1. 创建crm-webapp 子项目 选择 webapp javaweb项目
    在这里插入图片描述
  2. 项目创建完毕后效果图:
    在这里插入图片描述
  3. 完成项目配置

在这里插入图片描述 配置pom.xml主配置文件

  • 父配置项<packaging>pom</packaging>

  • 子配置项<packaging>jar</packaging>

  • 添加: <packaging>pom</packaging>

  • 父项目需要指定packaging 子类modules名称

  • 规范各依赖版本号:
    spring相关依赖: spring-beans,spring-core,spring-context,spring-aop,spring-aspects,spring-expression,spring-jdbc,spring-tx,spring-test,spring-web,spring-webmvc
    mybatis相关依赖:mybatis,mybatis-spring
    mysql相关依赖:mysql-conneteor-java
    数据库连接池druid组件:druid
    servlet相关组件:servlet-api,jstl,junit
    配置各种插件:
    配置tomcat插件:tomcat7-maven-plugin
    指定jdk版本插件:maven-compiler-plugin
    各个子模块使用依赖:
    crm-domain:junit
    crm-dao:mysql-connector-java,mybatis,mybatis-spring,druid,crm-domain,junit,spring-context
    crm-service:spring-aop,spring-aspects,spring-tx,spring-jdbc,crm-dao,junit
    crm-web:spring-webmvc,servlet-api,jstl,junit,spring-test,crm-service

  • 主pom.xml

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.xdl</groupId>
  <artifactId>crm</artifactId>
  <version>1.0-SNAPSHOT</version>
  <modules>
    <module>crm-domain</module>
    <module>crm-dao</module>
    <module>crm-service</module>
    <module>crm-web</module>
  </modules>
 <packaging>pom</packaging>

  <properties>
      <spring.version>4.3.3.RELEASE</spring.version>
      <mybatis.version>3.4.4</mybatis.version>
      <mybatis.spring.version>1.3.0</mybatis.spring.version>
      <druid.version>1.1.7</druid.version>
      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
  <dependencyManagement>
      <dependencies>
          <!--spring相关版本锁定-->
          <dependency>
              <groupId>org.springframework</groupId>
              <artifactId>spring-beans</artifactId>
              <version>${spring.version}</version>
          </dependency>
          <dependency>
              <groupId>org.springframework</groupId>
              <artifactId>spring-core</artifactId>
              <version>${spring.version}</version>
          </dependency>
          <dependency>
              <groupId>org.springframework</groupId>
              <artifactId>spring-expression</artifactId>
              <version>${spring.version}</version>
          </dependency>
          <dependency>
              <groupId>org.springframework</groupId>
              <artifactId>spring-jdbc</artifactId>
              <version>${spring.version}</version>
          </dependency>
          <dependency>
              <groupId>org.springframework</groupId>
              <artifactId>spring-aop</artifactId>
              <version>${spring.version}</version>
          </dependency>
          <dependency>
              <groupId>org.springframework</groupId>
              <artifactId>spring-aspects</artifactId>
              <version>${spring.version}</version>
          </dependency>
          <dependency>
              <groupId>org.springframework</groupId>
              <artifactId>spring-tx</artifactId>
              <version>${spring.version}</version>
          </dependency>
          <dependency>
              <groupId>org.springframework</groupId>
              <artifactId>spring-web</artifactId>
              <version>${spring.version}</version>
          </dependency>
          <dependency>
              <groupId>org.springframework</groupId>
              <artifactId>spring-webmvc</artifactId>
              <version>${spring.version}</version>
          </dependency>
          <dependency>
              <groupId>org.springframework</groupId>
              <artifactId>spring-test</artifactId>
              <version>${spring.version}</version>
              <scope>test</scope>
          </dependency>
          <dependency>
              <groupId>org.springframework</groupId>
              <artifactId>spring-context</artifactId>
              <version>${spring.version}</version>
          </dependency>
          <!--mybatis相关版本锁定-->
          <dependency>
              <groupId>org.mybatis</groupId>
              <artifactId>mybatis</artifactId>
              <version>${mybatis.version}</version>
          </dependency>
          <dependency>
              <groupId>org.mybatis</groupId>
              <artifactId>mybatis-spring</artifactId>
              <version>${mybatis.spring.version}</version>
          </dependency>
          <!--mysql相关版本锁定-->
          <dependency>
              <groupId>mysql</groupId>
              <artifactId>mysql-connector-java</artifactId>
              <version>5.1.42</version>
          </dependency>
          <!--数据库连接池druid配置-->
<!--          <dependency>-->
<!--              <groupId>com.alibaba</groupId>-->
<!--              <artifactId>druid</artifactId>-->
<!--              <version>1.1.7</version>-->
<!--          </dependency>-->

         <dependency>
              <groupId>javax.servlet</groupId>
              <artifactId>javax.servlet-api</artifactId>
              <version>3.1.0</version> 
              <scope>provided</scope>
          </dependency>
          <dependency>
              <groupId>jstl</groupId>
              <artifactId>jstl</artifactId>
              <version>1.2</version>
              <scope>provided</scope>
          </dependency>
          <dependency>
              <groupId>junit</groupId>
              <artifactId>junit</artifactId>
              <version>4.12</version>
             <scope>test</scope>
          </dependency>
      </dependencies>
  </dependencyManagement>
    <build>
        <plugins>
                <!--配置tomcat插件-->
                <plugin>
                    <groupId>org.apache.tomcat.maven</groupId>
                    <artifactId>tomcat7-maven-plugin</artifactId>
                    <version>2.2</version>
                    <configuration>
                        <port>8888</port>
                        <server>tomcat7</server>
                        <path>/crm</path>
                    </configuration>
                </plugin>
            <!-- 指定项目jdk版本插件-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.2</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>utf-8</encoding>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>
  • 配置pom.xml(crm-domain配置文件)
    crm-domain:junit
<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>
  • 配置pom.xml(crm-dao 配置文件)
    crm-dao:mysql-connector-java,mybatis,mybatis-spring,druid,crm-domain,junit,spring-context
<dependencies>
  <dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
  </dependency>
  <dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
  </dependency>
  <dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis-spring</artifactId>
  </dependency>
  <!-- 配置数据库连接池druid-->
  <dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.1.7</version>
  </dependency>
  <!--让dao 依赖domain 才能找到domain里面的类-->
  <dependency>
    <groupId>com.xdl</groupId>
    <artifactId>crm-domain</artifactId>
    <version>1.0-SNAPSHOT</version>
  </dependency>
  <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
  </dependency>
  <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
    </dependency>
</dependencies>
  • 配置pom.xml(crm-service配置文件)
    crm-service:spring-aop,spring-aspects,spring-tx,spring-jdbc,crm-dao,junit
  <dependencies>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-aop</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-aspects</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-tx</artifactId>
    </dependency>
    <dependency>
      <groupId>com.xdl</groupId>
      <artifactId>crm-dao</artifactId>
      <version>1.0-SNAPSHOT</version>
    </dependency>
    <!-- 添加一个spring-jdbc  -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
    </dependency>
  </dependencies>
  • 配置pom.xml(crm-web 配置文件)
    crm-web:spring-webmvc,servlet-api,jstl,junit,spring-test,crm-service
<artifactId>crm-web</artifactId>
<packaging>jar</packaging>
<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
    </dependency>
   <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>jstl</groupId>
        <artifactId>jstl</artifactId>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-test</artifactId>
    </dependency>
    <dependency>
            <groupId>com.xdl</groupId>
            <artifactId>crm-service</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
    </dependencies>
    <build>
        <finalName>crm-web</finalName>
    </build>
</dependencies>
  • .在crm-domain子项目下编写 Customer实体类

在这里插入图片描述

public class Customer implements Serializable {
    private int id;
    private String name;
    private String gender;
    private int age;
  • .在crm-dao子项目下编写mapper接口和mapper映射器文件
    需要在main下创建相同层级的目录写xml配置文件

在这里插入图片描述

  • 因为编写接口需要使用crm-domain子项目下的实体 所以需要导入依赖关系
<dependency>
  <groupId>com.xdl</groupId>
  <artifactId>crm-domain</artifactId>
  <version>1.0-SNAPSHOT</version>
</dependency>
  • mapper接口:
public interface CustomerMapper {
    public void addCustomer(Customer customer);
}
  • mapper映射器文件: CustomerMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>  
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <!-- namespace指定和哪个Mapper映射器接口对应 -->
<mapper namespace="com.xdl.mapper.CustomerMapper">
   <!-- 定义SQL语句 -->   
    <insert id="addCustomer" parameterType="com.xdl.Customer">
         insert into test.t_customer (name,gender,age)values(#{name},#{gender},#{age})
    </insert>
</mapper>
  • .在crm-service子项目pom.xml中配置 crm-dao 依赖项
<!-- 在crm-service中 引入crm-dao -->
<dependency>
    <groupId>com.xdl</groupId>
    <artifactId>crm-dao</artifactId>
    <version>1.0-SNAPSHOT</version>
</dependency>
  • 在crm-web子项目中加入applicationContext.xml文件和数据库配置 文件和spring-mvc.xml 加入配置文件到main/resources下在这里插入图片描述

  • 并且在pom.xml(crm-web)中添加crm-service依赖项

<dependency>
    <groupId>com.xdl</groupId>
    <artifactId>crm-service</artifactId>
    <version>1.0-SNAPSHOT</version>
</dependency>
  1. 在crm-web中创建测试类
    在这里插入图片描述
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext.xml")
public class CustomerMapperTest {
    @Autowired
    private CustomerMapper customerMapper;
    @Test
    public void testSave(){
        Customer customer = new Customer();
        customer.setName("eric");
        customer.setGender("男");
        customer.setAge(20);
        customerMapper.addCustomer(customer);
    }

}
  1. 编写web.xml配置文件:启动spring,启动springmvc(创建dispatcherservlet),编码过滤器
    在这里插入图片描述
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns="http://java.sun.com/xml/ns/javaee"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
         version="2.5">
  <!--解决乱码过滤器-->
  <filter>
    <filter-name>EncodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
      <param-name>encoding</param-name>
      <param-value>utf-8</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>EncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
  <!--启动spring-->
  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:applicationContext.xml</param-value>
  </context-param>
  <!--启动springmvc -->
  <servlet>
    <servlet-name>DispatcherServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:spring-mvc.xml</param-value>
    </init-param>
  </servlet>
  <servlet-mapping>
    <servlet-name>DispatcherServlet</servlet-name>
    <url-pattern>*.action</url-pattern>
  </servlet-mapping>
</web-app>
  1. 编写controller控制器:
@Controller
@RequestMapping("/customer")
public class CustomerController {
    public CustomerController(){
        System.out.println("1111");
    }

    @Autowired
    private CustomerService customerService;
    /**
     * 跳转到input.jsp
     */
    @RequestMapping("/input")
    public String input(){
        System.out.println("哈哈哈");
        return "input";
    }

    /**
     * 保存
     */
    @RequestMapping("/save")
    public String save(Customer customer){
        customerService.addCoustomer(customer);
        return "succ";
    }
}

9.启动服务器 输入:http://localhost:8888/crm/customer/input.action

源代码:https://github.com/xuyudong102/crm

发布了1 篇原创文章 · 获赞 0 · 访问量 11

猜你喜欢

转载自blog.csdn.net/qq_25613479/article/details/105532591