使用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.pluginsgroupId>
            <artifactId>maven-compiler-pluginartifactId>
            <configuration>
                <source>${java-version}source>
                <target>${java-version}target>
                
                <skip>trueskip>
                <encoding>UTF-8encoding>
            configuration>
        plugin>
        <plugin>
            <groupId>org.apache.maven.pluginsgroupId>
            <artifactId>maven-resources-pluginartifactId>
            <configuration>
                <encoding>UTF-8encoding>
            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>tomcatid>
       <username>tomcatusername>
       <password>tomcatpassword>
    server>
servers>
  • 项目pom.xml

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

<plugins>
    <plugin>
        <groupId>org.apache.maven.pluginsgroupId>
        <artifactId>maven-compiler-pluginartifactId>
        <configuration>
            <source>${java-version}source>
            <target>${java-version}target>
            
            <skip>trueskip>
            <encoding>UTF-8encoding>
        configuration>
    plugin>
    <plugin>
        <groupId>org.apache.maven.pluginsgroupId>
        <artifactId>maven-resources-pluginartifactId>
        <configuration>
            <encoding>UTF-8encoding>
        configuration>
    plugin>
    <plugin>
        <groupId>org.codehaus.mojogroupId>
        <artifactId>tomcat-maven-pluginartifactId>
        <version>1.1version>
        <configuration>
            <path>/renren-securitypath>
            <port>8090port>
            <uriEncoding>UTF-8uriEncoding>
            <url>http://localhost:8090/manager/texturl>
            <server>tomcatserver>
            <username>tomcatusername>
            <password>tomcatpassword>
        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的tomcat插件部署项目_第1张图片

使用maven的tomcat插件部署项目_第2张图片

项目就可以正常运行了
以后运行可以直接执行maven build
使用maven的tomcat插件部署项目_第3张图片

  • 遇到的错误

使用maven的tomcat插件部署项目_第4张图片

-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?
  • 参考
    http://www.renren.io/open/
    http://www.cnblogs.com/tibit/p/5400748.html

你可能感兴趣的:(maven)