您的位置:首页 > 运维架构 > Tomcat

使用maven的tomcat插件部署项目

2017-03-31 11:45 671 查看
从网上学习别人的框架,发现框架的部署教程中用的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?


参考

http://www.renren.io/open/

http://www.cnblogs.com/tibit/p/5400748.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: