学习资料

IDEA 创建基于Maven的多模块Web项目

2017-12-25  本文已影响123人  Thresh0ld

本文权当我的一个笔记。如果你尚未安装 IntelliJ IDEA.请安装后再来看本文。本文参考了此文.
本文只是个创建项目的入门教程,其中不涉及一些理念的探究以及一些名词的解释。
水平有限,对于文中的疏漏错误,欢迎各位斧正。

一. 新建项目

image.png

或者点 菜单File ~ create Project 都是一样的。

  1. 创建ParentProject(主项目)


    image.png

    这里我们不用点create from archetype. 主项目其实就是个框架,用来包含各个子模块的。


    image.png
    • GroupId: 一般是组织+域名+项目名
    • ArtifactId:项目名称。
    • Version:一般用默认即可。


      image.png

      这一步没什么好说的,就是让你设置项目名称和位置。点Finish就完成了主项目的创建

  2. 创建webapp模块
    点击侧边栏的Project标签来显示Project窗口,在项目上右击创建新的模块。


    image.png
    image.png

    注意这里要选择webapp


    image.png
    填写你的webapp的ArtifactId
    image.png
    这一步也没什么好说的,他是让你选择Maven的路径,这里IDEA自带了Maven3,用默认的就可以了。
    image.png

    同样,这一步让你选择保存位置。也没什么好说的。点Finish后稍等片刻(maven在创建你需要的结构)。
    生成好后,当前结构就如下:


    image.png
  3. 我们再来创建个webservice模块
    和上面创建过程类似,只是这次我们不要选webapp


    image.png

    创建好类似下面:


    image.png
  4. 同样我们再创建个webdao
    和创建webservice模块一样,不用选webapp.创建完类似下面:


    image.png
  5. 让webapp模块依赖webdao和webservice

    image.png
    选择Project structure
    image.png
    image.png
    image.png
    这样设置依赖后,webapp模块就能访问webservice模块和webdao模块里的public类,但是maven在编译的时候还是会报错,因为maven的 webapp模块 dependency依赖里没有webservice模块和webdao模块。
    所以还需要到webapp模块的pom.xml中做配置。
        <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/maven-v4_0_0.xsd">
        <parent>
            <artifactId>MyWeb</artifactId>
            <groupId>com.threshold.myweb</groupId>
            <version>1.0-SNAPSHOT</version>
        </parent>
        <modelVersion>4.0.0</modelVersion>
        <artifactId>webapp</artifactId>
        <packaging>war</packaging>
        <name>webapp Maven Webapp</name>
        <url>http://maven.apache.org</url>
        <dependencies>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>3.8.1</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>com.threshold.myweb</groupId>
                <artifactId>webservice</artifactId>
                <version>1.0-SNAPSHOT</version>
            </dependency>
            <dependency>
                <groupId>com.threshold.myweb</groupId>
                <artifactId>webdao</artifactId>
                <version>1.0-SNAPSHOT</version>
            </dependency>
        </dependencies>
        <build>
            <finalName>webapp</finalName>
          </build>
      </project>
    

    这样,基本上就算是配置好了。

  6. 其他配置

    • 由于我们的parent主项目只是用来包裹子模块的,所以可以把主Project下的src文件夹删除.


      image.png

      右击删除src目录即可。

    • webapp模块还缺少java目录。同样打开Project Structure窗口做下面的配置。


      image.png

      创建好java目录后再点上面的Sources按钮设为源码目录


      image.png
      设置好后java文件夹会变蓝色。
      image.png

      同理还需要对webservice模块和webdao模块的java目录设为Sources处理(只是这两个模块不需要创建java文件夹,默认已经有了)


      image.png
      全部设置好点OK保存配置。
      image.png
      Project目录还应像上图那样创建包。每个模块的包名都应以你的groupId+artifactID为开头。
  7. 配置Tomcat运行环境
    先要下载Tomcat 以及解压到一个目录,这我就不多说了。自己去官网下载吧。


    打开配置窗口.png
    image.png
    image.png
    image.png

    再点击右边Application Server 旁边的Configure.. 按钮,添加Tomcat 目录


    Tomcat-Server.png
    下拉选择Tomcat-Server.png
    选择Development标签,添加Artifact.png
    选择war exploded.png
    把update action改下(这步可不做).png
    现在默认运行环境就是刚刚配置好的.png
  8. maven配置优化
    我们每个模块可能都需要单元测试,比如JUnit,通常我们会在各个模块pom.xml下添加JUnit的依赖,但是一旦模块很多再加上JUnit的升级,每个模块下的pom.xml都需要更改,增加工作量不说还容易忘记某个模块,这会导致同一个项目可能存在同时依赖某个库的不同版本,而这是我们不想看到的。为了统一管理依赖库的版本,建议将各个子模块所依赖的库信息写到主项目下的pom.xml中。


    image.png

    在modules下面添加:

     <properties>
        <hibernate.annotations.version>3.3.0.ga</hibernate.annotations.version>
        <junit.version>4.12</junit.version>
    </properties>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>${junit.version}</version>
                <scope>test</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    

    添加好的pom.xml如下:


    image.png

    在这里提示一下,可以点气泡通知允许自动导入依赖。这样新添加的依赖就自动加入到你的模块中了。
    之后再打开各个模块的pom.xml文件,如果有需要的依赖,在子模块中引入即可,而且不需要写依赖的模块的version(因为主项目的pom.xml已经定义了)


    image.png
    这里对于依赖的子模块,建议使用引用的方式。
  9. 其他配置
    通常maven项目创建好后,即使你安装的jdk是1.8的,但是却使用不了1.8的特性。例如下面的提示:


    image.png

    解决方案如下,在主项目的pom.xml中加入plugin配置。

     <build>
      <plugins>
          <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-compiler-plugin</artifactId>
              <configuration>
                  <source>1.8</source>
                  <target>1.8</target>
                  <encoding>UTF-8</encoding>
              </configuration>
          </plugin>
      </plugins>
  </build>

最后整理好的pom.xml如下:


image.png

现在尽情的去写你的Hello Web吧。

上一篇 下一篇

猜你喜欢

热点阅读