使用maven的tomcat插件部署项目

从网上学习别人的框架,发现框架的部署教程中用的maven启动的项目,第一次知道这种方法,从网上找了很多博客,感觉写的都不太明白,所以写下我目前知道的。

1、通过git下载源码
2、创建数据库renren-security,数据库编码为UTF-8
3、执行doc/db.sql文件,初始化数据
4、修改db.properties文件,更新MySQL账号和密码
5、Eclipse、IDEA执行【clean package tomcat7:run】命令,即可运行项目
6、项目访问路径:http://localhost
7、非Maven方式启动,则默认访问路径为:http://localhost:8080/renren-security
8、账号密码:admin/admin

刚开始看了上面的部署过程,发现第五条根本不知道在哪执行啊。。。
经过查询知道通过maven部署项目有两种方式,都可以脱离eclipse,使用命令行执行mvn命令:
第一种方式是使用maven的tomcat插件,这种方式不需要本地安装的tomcat,使用插件内置的tomcat在本地启动项目,默认启用8080端口,这种方式只需要在工程的pom.xml文件中按照如下配置:
注意Java-version要与自己的jdk版本匹配

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>${java-version}</source>
                <target>${java-version}</target>
                <!-- true:跳过测试 -->
                <skip>true</skip>
                <encoding>UTF-8</encoding>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-resources-plugin</artifactId>
            <configuration>
                <encoding>UTF-8</encoding>
            </configuration>
        </plugin>
    </plugins>
</build>

然后在pom.xml所在的目录下打开命令窗口(shift+目录下右键菜单),执行mvn tomcat:run就可以运行项目,也可以按照第二种方法介绍的在eclipse中运行mvn命令。

第二种方式是用本地安装的tomcat,从我目前知道的这种方式可以实现远程部署项目,意思就是在服务器的tomcat配置文件里为maven配置一个账号,就可以在本地使用maven命令把项目部署到正在运行的服务器的tomcat下面,我安装的tomcat8, 端口用的8090

  • tomcat配置
    在目标tomcat的配置文件(conf/tomcat-users.xml)中为maven添加账号
<tomcat-users>
  <role rolename="tomcat"/>
  <role rolename="manager"/>
  <role rolename="manager-gui"/>
  <role rolename="manager-script" />
  <role rolename="admin-gui"/>
  <user username="tomcat" password="tomcat" roles="tomcat,manager,
      manager-gui,manager-script,admin-gui" />
</tomcat-users>
  • maven配置(我后来测试这里不配置也可以,后面的pom.xml有地方配置)
    具体的配置maven安装、配置环境变量过程就不写了,网上也有很多

给maven添加tomcat的用户,在maven安装目录下的conf/settings.xml文件中servers标签下按照如下配置

<servers>
    <server>
       <id>tomcat</id>
       <username>tomcat</username>
       <password>tomcat</password>
    </server>
</servers>
  • 项目pom.xml

    注意Java-version要与自己的jdk版本匹配

<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
            <source>${java-version}</source>
            <target>${java-version}</target>
            <!-- true:跳过测试 -->
            <skip>true</skip>
            <encoding>UTF-8</encoding>
        </configuration>
    </plugin>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-resources-plugin</artifactId>
        <configuration>
            <encoding>UTF-8</encoding>
        </configuration>
    </plugin>
    <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>tomcat-maven-plugin</artifactId>
        <version>1.1</version>
        <configuration>
            <path>/renren-security</path>
            <port>8090</port>
            <uriEncoding>UTF-8</uriEncoding>
            <url>http://localhost:8090/manager/text</url>
            <server>tomcat</server>
            <username>tomcat</username>
            <password>tomcat</password>
        </configuration>
    </plugin>
</plugins>

上面的两个plugin和第一种方法一样,主要是第三个plugin:
path:是tomcat上的项目名称(我的就是http://localhost:8090/renren-security
port:是端口,这个地方可以不用配置,第一种方法应该可以通过这个修改端口号(我没试)
url:写到text,网上也有到html的(我试了不行)
下面三个就是目标tomcat的用户名和密码了,没有这个就没权限在目标tomcat上部署项目

  • mvn命令运行
    上面配置完成之后可以在工程pom.xml目录下打开命令行窗口
D:\Workspaces\renren-security>mvn tomcat:run

执行tomcat:run命令依然会按照默认的8080端口启动内置tomcat插件部署项目

>mvn install

install命令会编译出classs文件、jar文件和项目war包

>mvn clean 

clean命令会把install生成的文件全部清除

>mvn tomcat:deploy

deploy在install生成war包之后执行,将项目部署到目标tomcat(启动状态),如果报错很可能是maven账号没有配置好,没有权限

>mvn tomcat:undeploy

将项目从运行的tomcat上卸载

  • eclipse运行

这里写图片描述

这里写图片描述

项目就可以正常运行了
以后运行可以直接执行maven build
这里写图片描述

  • 遇到的错误

这里写图片描述

-Dmaven.multiModuleProjectDirectory system property is not set. Check $M2_HOME environment variable and mvn script match.

如果出现上面的错误就是下面的这条参数没加上

-Dmaven.multiModuleProjectDirectory=$M2_HOME

同事遇到了下面这个错误,说明上面图片JRE home选择的不是jdk目录而是jre目录

No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
  • 6
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值