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

maven项目自动打包部署到tomcat

2015-06-18 15:05 701 查看
首先我们在我们要打包的maven项目的pom.xml里配置

      <build>

        <finalName>maven-web</finalName>

        <plugins>

            <plugin>

                <groupId>org.apache.tomcat.maven</groupId>

                <artifactId>tomcat7-maven-plugin</artifactId>

                <version>2.0-beta-1</version>

                <configuration>

                    <url>http://localhost:4000/manager/text</url>

                    <server>tomcat7</server>

                    <username>hnjk</username>

                    <password>123</password>

                </configuration>

            </plugin>

        </plugins>

    </build>

--------

finalName 属性是打包后文件的名字,groupId,artifactId,version属性都是配置tomcat插件的,如果没有安装插件我们要在你的eclipse里maven用的settings.xml配置

<pluginGroups>

        <pluginGroup>org.apache.tomcat.maven</pluginGroup>

    </pluginGroups>

这样程序会去下载tomcat插件,

url属性配置的是你启动的tomcat服务的信息,

username,password属性是在tomcat里的tomcat-users.xml里配置的用户角色权限我是这样配置的

<role rolename="manager"/>  

 <role rolename="manager-gui"/>  

 <role rolename="admin"/>  

 <role rolename="admin-gui"/>  

 <role rolename="manager-script"/>  

 <role rolename="manager-jmx"/>  

 <role rolename="manager-status"/>  

 <user username="hnjk" password="123" roles="admin-gui,admin,manager-gui,manager,manager-script,manager-jmx,manager-status"/> 

servers属性是要在settings.xml里配置

 <servers>

      <server>

          <id>tomcat7</id>

          <username>hnjk</username>

          <password>123</password>

      </server>        

    </servers>

初步完成配置,我们在打包的时候需要先保证http://localhost:4000/manager/是可以访问的也就是说先要成功启动tomcat

启动tomcat后我们在eclipse里输入maven命令打包部署

选择要打包的maven项目右键点击debug as或者run as 选择run configurations 选择maven-build 新建一个命令 在goals里输入命令 tomcat7:deploy

如图



点击运行

成功在console里会输出这种信息

[INFO] tomcatManager status code:200, ReasonPhrase:OK

[INFO] OK - Deployed application at context path /maven-web

[INFO] ------------------------------------------------------------------------

[INFO] BUILD SUCCESS

[INFO] ------------------------------------------------------------------------

[INFO] Total time: 1.866 s

[INFO] Finished at: 2015-06-18T14:55:03+08:00

[INFO] Final Memory: 16M/219M

[INFO]

我们去看我们的tomcat里的webapps目录里会有我们打包的文件



已经把war包扔进去了,并且帮你解压出来了我们可以直接访问如图:
http://127.0.0.1:4000/maven-web/


正常情况下我们的项目是需要重复打包的,这个时候我们希望的是我们新的打包文件会覆盖旧的文件所以我们在刚才的

代码加入红色这行

<build>

        <finalName>maven-web</finalName>

        <plugins>

            <plugin>

                <groupId>org.apache.tomcat.maven</groupId>

                <artifactId>tomcat7-maven-plugin</artifactId>

                <version>2.0-beta-1</version>

                <configuration>

                    <url>http://localhost:4000/manager/text</url>

                    <server>tomcat7</server>

                    <username>hnjk</username>

                    <password>123</password>

                    <update>true</update>

                </configuration>

            </plugin>

        </plugins>

    </build>

现在还不能高兴的太早,这样虽然会覆盖了,但是我们会发现我们的项目里只有web-inf这个文件了

我们应该在tomcat里的context.xml文件里的Context属性里加入antiJARLocking="true" antiResourceLocking="true"

变成这样<Context antiJARLocking="true" antiResourceLocking="true">

大功告成,我们现在可以打包部署了,以后改了文件已可以直接输入命令打包部署查看效果了

希望对大家有用!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: