JavaEE

JavaWeb开发之Maven

2018-04-29  本文已影响149人  平安喜乐698
目录
    
1. 框架简介
Maven:跨平台的项目管理工具,可以
      项目构建
       【清理项目】→【编译项目】→【测试项目】→【生成测试报告】→【打包项目】→【部署项目】
      依赖管理
        自动下载项目所需要的jar包,管理依赖关系
  1. 配置maven环境(MAC)
http://maven.apache.org/download.cgi 下载Maven

Maven文件夹(放到Lib下)
    bin:含有mvn运行的脚本
    boot:含有plexus-classworlds类加载器框架
    conf:含有settings.xml配置文件
    lib:含有Maven运行时所需要的java类库
    LICENSE.txt, NOTICE.txt, README.txt针对Maven版本,第三方软件等简要介绍

终端
    vim ~/.bash_profile    修改环境变量
        export MAVEN_PATH=/Library/maven3.5.3
        export PATH=$PATH:$MAVEN_PATH/bin
    source ~/.bash_profile        保存立刻生效
    mvn -v  查看是否安装成功
Maven仓库:用来统一存储所有Maven共享构建的位置
    每个构建在仓库中唯一存储路径(根据Maven坐标定义)大致为:groupId/artifactId/version/artifactId-version.packaging

仓库分类
    本地仓库(从Maven中心仓库下载到本地的jar包的)
          每个用户只有一个本地仓库,默认是在~/.m2/repository/,~代表的是用户目录
          修改位置
            maven文件夹|conf文件夹|settings.xml文件的<setting>下+ 修改jar包下载位置
            <localRepository>/Users/cx/Workspaces/repository</localRepository>
    远程仓库
          1、中央仓库:Maven默认的远程仓库,URL地址:http://search.maven.org/
          2、私服:是一种特殊的远程仓库,它是架设在局域网内的仓库

Maven坐标
    在平面几何中,坐标(x,y)可以标识平面中唯一的一点。在开发中,坐标可以唯一确定一个项目
    Maven坐标(便于管理使用)主要组成
      groupId:组织标识(包名)
      artifactId:项目名
      version:项目的当前版本
      packaging:项目的打包方式,最为常见的jar和war两种
  1. 生命周期
Maven生命周期就是为了对所有的构建过程(项目清理,初始化,编译,打包,测试,部署)进行抽象和统一.

Maven有三套相互独立(可组合使用)的生命周期
    1. Clean Lifecycle     在构建之前进行清理工作。
    2. Default Lifecycle   构建的核心部分(编译,测试,打包,部署等等)。
    3. Site Lifecycle      生成项目报告,站点,发布站点。
Clean生命周期共三个阶段:
    1. pre-clean 执行一些需要在clean之前完成的工作
    2. clean 移除所有上一次构建生成的文件
    3. post-clean 执行一些需要在clean之后立刻完成的工作
    mvn clean"中的clean就是上面的clean,在一个生命周期中,运行某个阶段的时候,它之前的所有阶段都会被运行,也就是说,"mvn clean"等同于 mvn pre-clean clean ,如果我们运行 mvn post-clean ,那么 pre-clean,clean 都会被运行。

Site生命周期共三个阶段:
    1. site 生成项目的站点文档
    2. post-site 执行一些需要在生成站点文档之后完成的工作,并且为部署做准备
    3. site-deploy 将生成的站点文档部署到特定的服务器上
  
Default生命周期(最重要的一个,做绝大部分工作)常用的阶段:
    validate
    generate-sources
    process-sources
    generate-resources
    process-resources 复制并处理资源文件,至目标目录,准备打包。
    compile 编译项目的源代码。
    process-classes
    generate-test-sources
    process-test-sources
    generate-test-resources
    process-test-resources 复制并处理资源文件,至目标测试目录。
    test-compile 编译测试源代码。
    process-test-classes
    test 使用合适的单元测试框架运行测试。这些测试代码不会被打包或部署。
    prepare-package
    package 接受编译好的代码,打包成可发布的格式,如 JAR 。
    pre-integration-test
    integration-test
    post-integration-test
    verify
    install 将包安装至本地仓库,以让其它项目依赖。
    deploy 将最终的包复制到远程的仓库,以让其它开发人员与项目共享。
   运行任何一个阶段的时候,它前面的所有阶段都会被运行,这也就是为什么我们运行mvn install 的时候,代码会被编译,测试,打包。此外,Maven的插件机制是完全依赖Maven的生命周期的,因此理解生命周期至关重要。
  1. 基础

项目目录(约定好的)

MavenProjectRoot(项目根目录)
   |----src
   |     |----main
   |     |         |----java ——存放项目的.java文件
   |     |         |----resources ——存放项目资源文件,如spring, hibernate配置文件
   |     |----test
   |     |         |----java ——存放所有测试.java文件,如JUnit测试类
   |     |         |----resources ——存放项目资源文件,如spring, hibernate配置文件
   |----target ——项目输出位置(编译自动生成)
   |----pom.xml ----用于标识该项目是一个Maven项目

pom.xml

pom(project object model).xml
    包含了项目构建的信息,包括项目的信息、项目的依赖等。
    继承:子模块的pom.xml继承于父模块的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">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.mycompany.app</groupId>
  <artifactId>my-WebApp</artifactId>
  <packaging>war</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>my-WebApp Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <build>
    <finalName>my-WebApp</finalName>
  </build>
</project>

说明:
<project>      pom顶级节点(写法固定)
<modelVersion>   pom版本(对Maven2和3只能是4.0.0)
<groupId>      创建项目的组织标识符(一般是域名倒写)
<artifactId>    项目名(组织下的唯一标识)
<version>      项目版本(SNAPSHOT表示是快照版本)
<packaging>     打包的方式(有jar、war、ear等)
<name>        项目名称
<url>        项目地址
<properties>    属性配置
<dependencies>   构建项目所依赖的jar

由groupId、artifactId和version唯一的确定了一个项目。

依赖配置(使用jar包)

pom.xml中+
   <dependencies>
        <!--项目要使用到junit的jar包,所以在这里添加junit的jar包的依赖-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.9</version>
            <scope>test</scope>
        </dependency>
       <!--项目要使用到Hello.jar包,所以在这里添加Hello.jar包的依赖-->
        <dependency>
            <groupId>com.sst.cx.maven</groupId>
            <artifactId>Hello</artifactId>
            <version>0.0.1-SNAPSHOT</version>
            <scope>compile</scope>
        </dependency>    
    </dependencies>

使用
    import com.sst.cx.maven.Hello;


scope(依赖范围)
    用来控制依赖和编译,测试,运行的classpath的关系.
    主要的是三种依赖关系如下:
    1.compile: 默认编译依赖范围。对于编译,测试,运行三种classpath都有效
    2.test:测试依赖范围。只对于测试classpath有效
    3.provided:已提供依赖范围。对于编译,测试的classpath都有效,但对于运行无效。因为由容器已经提供,例如servlet-api
    4.runtime:运行时提供。例如:jdbc驱动
    传递性依赖
      MakeFriends.jar直接依赖于HelloFriends.jar,而HelloFriends.jar又直接依赖于Hello.jar,那么MakeFriends.jar也依赖于Hello.jar,这就是传递性依赖,只不过这种依赖是间接依赖

Maven插件

    1. Maven的核心仅仅定义了抽象的生命周期,具体的任务都是交由插件完成的。
    2. 每个插件都能实现多个功能,每个功能就是一个插件目标。
    3. Maven的生命周期与插件目标相互绑定,以完成某个具体的构建任务,例如compile就是插件maven-compiler-plugin的一个插件目标。

聚合

用于构建多个项目

 <modules>
       <module>../Hello</module>  
       <module>../HelloFriend</module>        
       <module>../MakeFriends</module>
</modules>

继承

继承为了消除重复,我们把很多相同的配置提取出来,例如:grouptId,version等

<parent>  
          <groupId>com.sst.cx.maven</groupId>
          <artifactId>ParentProject</artifactId>
          <version>0.0.1-SNAPSHOT</version>
          <relativePath>../ParentProject/pom.xml</relativePath>  
</parent>

自动生成项目

mvn archetype:create或者mvn archetype:generate   固定写法
  -DgroupId                       组织标识(包名)
  -DartifactId                     项目名称
  -DarchetypeArtifactId                指定ArchetypeId,maven-archetype-quickstart,创建一个Java Project;maven-archetype-webapp,创建一个Web Project
  -DinteractiveMode                  是否使用交互模式

DarchetypeArtifactId是可用的mvn项目骨架,目前可以使用的骨架有:
  * maven-archetype-archetype
  * maven-archetype-j2ee-simple
  * maven-archetype-mojo
  * maven-archetype-portlet
  * maven-archetype-profiles (currently under development)
  * maven-archetype-quickstart  (Java 项目)
  * maven-archetype-simple (currently under development)
  * maven-archetype-site
  * maven-archetype-site-simple
  * maven-archetype-webapp  (JavaWeb 项目)
  1. 手动创建Maven项目
新建文件夹MavenTest(结构同上,约定)
新建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/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.sst.cx.maven</groupId>
  <artifactId>MavenTest</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <name>MavenTest</name>
  
    <!--添加依赖的jar包-->
    <dependencies>
        <!--项目要使用到junit的jar包,所以在这里添加junit的jar包的依赖-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.9</version>
        </dependency>        
    </dependencies>
</project>
新建com文件夹|sst文件夹|cx文件夹|Hello.java

package com.sst.cx.maven;
public class Hello {
    public String sayHello(String name){
        return "Hello "+name+"!";
    }
}
终端
    进入项目根目录
    mvn compile 编译

编译成功后根目录下自动出现
    target文件夹
        classes文件夹(编译成功后生成的.class)


其他终端命令
    mvn clean     清除编译
    mvn test      测试项目  (target下多了一个test-classes文件夹,classes文件夹下多了一个类Test.class)
    mvn package   打包(target下多了一个类名-0.0.1-SNAPSHOT.jar)
    mvn install  (最常用)【清理】→【编译】→【测试】→【打包】-> 【部署项目到仓库】

    组合命令    
    mvn clean compile
    mvn clean test
    mvn clean package
    mvn clean install

5 快速生成Java项目

生成

方式一
mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=myapp -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
方式二(有点问题)
mvn archetype:create -DgroupId=com.mycompany.app -DartifactId=myapp -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
mvn clean compile   编译
mvn clean test      测试
mvn clean package   打包(会先编译测试)
mvn clean install   安装(会先编译测试打包)

运行jar包
java -cp target\myapp-1.0-SNAPSHOT.jar com.mycompany.app.App

6 快速生成JavaWeb项目

生成

方式一
mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-WebApp -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false
方式二
mvn archetype:create -DgroupId=com.mycompany.app -DartifactId=myWebApp -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false

创建好的JavaWeb项目中目前只有src/main/resources目录,因此还需要手动添加src/main/java、src/test/java、src/test/resources
打包发布

mvn package
    Target目录下生成war包,放在Tomcat/webapps下即可访问

或者


或者
<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">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.mycompany.app</groupId>
  <artifactId>myWebApp</artifactId>
  <packaging>war</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>myWebApp 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>
  </dependencies>
  <build>
    <finalName>myWebApp</finalName>
     <pluginManagement>
        <!--配置Jetty-->
          <plugins>
            <plugin>
             <groupId>org.mortbay.jetty</groupId>   
             <artifactId>maven-jetty-plugin</artifactId>
            </plugin>
          </plugins>
    </pluginManagement>
  </build>
</project>

mvn jetty:run
  1. 示例(继承与聚合)
聚合用来构建项目,继承用来消除重复

例:
父项目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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.sst.cx.maven</groupId>
    <artifactId>Parent</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>pom</packaging>

    <name>Parent</name>
    <url>http://maven.apache.org</url>
    
    <!-- 对Hello、Hello2 这2个项目进行聚合 -->
    <modules>
        <module>../Hello</module>
        <module>../Hello2</module>
    </modules>
    
    <!-- 定义属性 -->
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <junit.version>4.9</junit.version>
        <maven.version>0.0.1-SNAPSHOT</maven.version>
    </properties>

    <!-- 用dependencyManagement进行jar包依赖管理 -->
    <dependencyManagement>
        <!-- 配置jar包依赖 -->
        <dependencies>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <!-- 访问junit.version属性 -->
                <version>${junit.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>com.sst.cx.maven</groupId>
                <artifactId>Hello</artifactId>
                <!-- 访问maven.version属性 -->
                <version>${maven.version}</version>
                <scope>compile</scope>
            </dependency>
            <dependency>
                <groupId>com.sst.cx.maven</groupId>
                <artifactId>Hello2</artifactId>
                <!-- 访问maven.version属性 -->
                <version>${maven.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>
</project>

Hello项目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/xsd/maven-4.0.0.xsd">
  
  <modelVersion>4.0.0</modelVersion>
  <artifactId>Hello</artifactId>
  
      <!-- 继承Parent项目中的pom.xml配置 -->
       <parent>  
          <groupId>com.sst.cx.maven</groupId>
          <artifactId>Parent</artifactId>
          <version>0.0.1-SNAPSHOT</version>
          <!-- 使用相对路径 -->
          <relativePath>../Parent/pom.xml</relativePath>  
       </parent>
    
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
        </dependency>
    </dependencies>
</project>

Hello2项目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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <artifactId>Hello2</artifactId>
    <name>Hello2</name>
    
    <!-- 继承Parent项目中的pom.xml配置 -->
    <parent>
        <groupId>com.sst.cx.maven</groupId>
        <artifactId>Parent</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <relativePath>../Parent/pom.xml</relativePath>
    </parent>
    <dependencies>
        <dependency>
            <!-- Parent项目的pom.xml文件配置中已经指明了要使用的Junit的版本号,因此在这里添加junit的依赖时,
            可以不指明<version></version>和<scope>test</scope>,会直接从Parent项目的pom.xml继承 -->
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
        </dependency>
        <!-- Hello2项目中使用到了Hello项目中的类,因此需要添加对Hello.jar的依赖 
        Hello.jar的<version>和<scope>也已经在Parent项目的pom.xml文件配置中已经指明了,因此这里也可以省略不写了
        -->
        <dependency>
            <groupId>com.sst.cx.maven</groupId>
            <artifactId>Hello</artifactId>
        </dependency>
    </dependencies>
</project>
MyEclipse
    选中Parent项目的pom.xml文件→【Run As】→【Maven install】
    Maven就会一次性同时构建Parent、Hello、Hello2这3个项目
  1. MyEclipse

导入已有项目

右键|Import|Import|Existing Maven Projects|找导入Maven项目
1
2
3

新建Maven项目

右键|New|Project|Maven Project
勾选Create a simple project则不能选择archetype
1
2
3
4
4-2

运行Maven项目

选中pom.xml | 右键 | Run As

或者

选中项目 | 右键 | Run As
选中项目 | 右键 | Run As | build(第3个)可以执行组合命令
1
2

部署项目

pom.xml第一行报错
Help | Sites | 
name=mavenAch
url=http://repo1.maven.org/maven2/.m2e/connectors/m2eclipse-mavenarchiver/0.17.2/N/LATEST/

使用自己安装的Maven

设置 | MyEclipse | Installations | Add | 找到下载好的Maven路径
使用自己安装的Maven

更换JDK

设置 | java | Installation JREs 
    必须1.6以上
更换JDK

修改User Settings

将maven文件夹下 | conf文件夹下 | settings.xml 复制到本地仓库下
设置 | MyEclipse | Maven | UserSettings 选择仓库下的settings.xml 
修改User Settings
  1. 搭建nexus Maven私服
有些公司不提供外网给项目组人员,不能使用maven访问远程的仓库地址,解决:
    在局域网里找一台有外网权限的电脑,搭建nexus私服。开发人员通过这台电脑访问maven的远程仓库。
1.下载nexus(放到Lib下)
    https://www.sonatype.com/download-nexus-repository-trial
    nexus文件夹含2个子文件夹
        nexus-3.10.0-04文件夹包含了nexus的运行环境和应用程序
        sonatype-work文件夹包含了自己的配置和存储构件的地方
        nexus-3.10.0-04/conf/nexus.properties中可以修改端口信息以及工作区的路径

2.启动
    /Library/nexus3.1/nexus-3.10.0-04/bin/nexus start
    浏览器输入http://127.0.0.1:8081检验是否启动成功

修改环境变量
    vi ~/.bash_profile
        export NEXUS_PATH=/Library/nexus3.1/nexus-3.10.0-04/bin
        export PATH=$PATH:$MAVEN_PATH/bin:$NEXUS_PATH
    source ~/.bash_profile
直接nexus start启动

3. 
登陆 默认账号admin,密码admin123

nexus默认是关闭远程索引下载
  1. 实际开发(多模块(多层))
进行分层开发便于维护,一般会分为
    domain(域模型层)
    dao(数据库访问层)
    service(业务逻辑层)
    web(表现层)

项目结构
    system-parent
        |----pom.xml
        |----system-domain
                |----pom.xml
        |----system-dao
                |----pom.xml
        |----system-service
                |----pom.xml
        |----system-web
                |----pom.xml
1. 创建system-parent

cd Desktop
mvn archetype:generate -DgroupId=com.sst.cx -DartifactId=system-parent -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

桌面上出现system-parent文件夹
    删除其下src文件夹
    pom.xml中将<packaging>jar</packaging>修改为<packaging>pom</packaging>,pom表示它是一个被继承的模块
2. 创建system-domain

cd system-parent
mvn archetype:generate -DgroupId=com.sst.cx -DartifactId=system-domain -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

在system-parent目录中的pom.xml文件自动添加了
    <modules>
        <module>system-domain</module>
    </modules>
修改system-domain目录中的pom.xml文件
    把(注意不是parent下的)groupId和version、dependencies去掉,(注意不是加在parent下)加上<packaging>jar</packaging>
3. 创建system-dao

cd system-parent
mvn archetype:generate -DgroupId=com.sst.cx -DartifactId=system-dao -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

在system-parent目录中的pom.xml文件自动添加了
    <modules>
        <module>system-dao</module>
    </modules>
修改system-dao目录中的pom.xml文件
    把(注意不是parent下的)groupId和version去掉,(注意不是加在parent下)加上<packaging>jar</packaging>,添加
     <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      </properties>
      <dependencies>
      <!--system-dao需要使用到system-domain中的类,所以需要添加对system-domain模块的依赖-->
      <dependency>
        <groupId>com.sst.cx</groupId>
        <artifactId>system-domain</artifactId>
        <version>${project.version}</version>
      </dependency>
    </dependencies>
4. 创建system-service

cd system-parent
mvn archetype:generate -DgroupId=com.sst.cx -DartifactId=system-service -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

在system-parent目录中的pom.xml文件自动添加了
    <modules>
        <module>system-service </module>
    </modules>
修改system-service目录中的pom.xml文件
    把(注意不是parent下的)groupId和version去掉,(注意不是加在parent下)加上<packaging>jar</packaging>,添加
     <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      </properties>
      <dependencies>
      <!--system-dao需要使用到system-domain中的类,所以需要添加对system-domain模块的依赖-->
      <dependency>
        <groupId>com.sst.cx</groupId>
        <artifactId>system-dao</artifactId>
        <version>${project.version}</version>
      </dependency>
    </dependencies>
5. 创建system-web

cd system-parent
mvn archetype:generate -DgroupId=com.sst.cx -DartifactId=system-web -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false

在system-parent目录中的pom.xml文件自动添加了
    <modules>
        <module>system-web</module>
    </modules>
修改system-web目录中的pom.xml文件
    把(注意不是parent下的)groupId和version去掉,(注意不是加在parent下)加上<packaging>war</packaging>,添加
     <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      </properties>
      <dependencies>
      <!--system-dao需要使用到system-domain中的类,所以需要添加对system-domain模块的依赖-->
      <dependency>
        <groupId>com.sst.cx</groupId>
        <artifactId>system-service</artifactId>
        <version>${project.version}</version>
      </dependency>
    </dependencies>
    <build>
        <finalName>system-web</finalName>
        <plugins>
            <!--配置Jetty插件-->
            <plugin>
                <groupId>org.mortbay.jetty</groupId>
                <artifactId>maven-jetty-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
6. 编译运行项目

cd system-parent
mvn clean install
在system-web目录下多出了target目录,里面有了system-web.war

cd system-web/
mvn jetty:run
浏览器输入http://localhost:8080/system-web/出现Hello World!即成功
7. 导入MyEclipse

选择system-parent文件夹
上一篇下一篇

猜你喜欢

热点阅读