从网上学习别人的框架,发现框架的部署教程中用的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?