• Eclipse下maven部署web项目到tomcat7(兼容tomcat8)


    1.下载tomcat7并配置好JAVA_HOME,tomcat7webapps目录除了manager之外,其它都可以删除(删除没用的,可加速tomcat的启动).

    2.新建系统变量CATALINA_HOME,值为:C:opensource omcat-7.0.34,在系统变量  Path的最后面添加%CATALINA_HOME%lib; %CATALINA_HOME%libservlet-api.jar;%CATALINA_HOME%libjsp-api.jar   注意它们之间的分号,一定是英文的分号。

    3.tomcat7conf omcat-users.xml加入

        <role rolename="admin-gui" />
        <role rolename="manager-gui" />
        <role rolename="manager-script"/>
        <user username="admin" password="eteda" roles="admin-gui,manager-gui,manager-script"/>

    当然用户名和密码可以不一样,但没有manager-gui就不能通过浏览器去访问manage应用,没有manager-script就不能通过manage去上传war包达到部署的目的.

    3.配置maven的setting.xml

    修改%MAVEN_HOME%confsetting.xml(前提是在myeclipse preferences中maven启用本地安装版本并设置用户setting.xml为本地conf下的setting.xml)。

    在<servers>标签中加入

    <server> 
           <id>tomcat7</id> 
           <username>admin</username> 
           <password>admin</password> 
    </server>

    注意这里用户名、密码必须为manager-gui角色的用户,这里设置需要与之前tomcat配置时的角色分配对应起来。

    4.在web项目的pom.xml的一个应用例子(注:url也必须有/text,否则也上传不了war包)

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <groupId>com.test</groupId>
        <artifactId>testweb</artifactId>
        <packaging>war</packaging>
        <version>1.0</version>
        <name>testweb Maven Webapp</name>
        <url>http://maven.apache.org</url>
        <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <project.deploy>deploy</project.deploy>
            <project.tomcat.version>8.0.0-RC5</project.tomcat.version>
        </properties>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.1</version>
                    <configuration>
                        <source>1.7</source>
                        <target>1.7</target>
                    </configuration>
                </plugin>
    
    <!-- 
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-resources-plugin</artifactId>
                    <version>2.6</version>
                    <executions>
                        <execution>
                            <id>copy-resources</id>
                            <phase>process-resources</phase>
                            <goals>
                                <goal>resources</goal>
                            </goals>
                            <configuration>
                                <encoding>UTF-8</encoding>
                                <outputDirectory>${project.build.directory}/${project.deploy}</outputDirectory>
                                <resources>
                                    <resource>
                                        <directory>src/main/resources/</directory>
                                        <includes>
                                            <include>*.xml</include>
                                        </includes>
                                    </resource>
                                </resources>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <version>2.3.2</version>
                    <configuration>
                        <archive>
                            <addMavenDescriptor>false</addMavenDescriptor>
                        </archive>
                        <outputDirectory>${project.build.directory}/${project.deploy}</outputDirectory>
                    </configuration>
                    <executions>
                        <execution>
                            <phase>process-classes</phase>
                            <goals>
                                <goal>jar</goal>
                            </goals>
                            <configuration>
                                <excludes>
                                    <exclude>*.properties</exclude>
                                </excludes>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
     -->
    
                <plugin>
                    <groupId>org.apache.tomcat.maven</groupId>
                    <artifactId>tomcat7-maven-plugin</artifactId>
                    <version>2.2</version>
                    <configuration>
                        <url>http://localhost:8080/manager/text</url>
                        <username>username</username>
                        <password>password</password>
                        <path>/${project.artifactId}</path>
                    </configuration>
                </plugin>
    
            </plugins>
        </build>
        <dependencies>
            <dependency>
                <groupId>org.apache.tomcat</groupId>
                <artifactId>tomcat-servlet-api</artifactId>
                <version>${project.tomcat.version}</version>
                <scope>provided</scope>
            </dependency>
        </dependencies>
    </project>

    5.tomcat7要先启动,在命令行转到项目目录下输入d:maven3inmvn tomcat7:deploy看结果.(注:不是tomcat:deploy)

    在eclipse配置好外部的maven,在eclipse的run configurations建一个Maven Build:Name随便起一个名字(如tomcat7_redeploy),Base directory选项目目录${workspace_loc:/testweb},goals填tomcat7:deploy.或tomcat7:redeploy

    deploy:如果已经部署过,再deploy就会失败.去tomcat7的webapps删除已经部署过的就行了.

    6.五个必须掌握的maven命令

    1). mvn help:describe 你是否因为记不清某个插件有哪些goal而痛苦过,你是否因为想不起某个goal有哪些参数而苦恼,那就试试这个命令吧,它会告诉你一切的. 参数: 1. -Dplugin=pluginName 2. -Dgoal(或-Dmojo)=goalName:与-Dplugin一起使用,它会列出某个插件的goal信息,如果嫌不够详细,同样可以加-Ddetail.(注:一个插件goal也被认为是一个 “Mojo”) 下面大家就运行mvn help:describe -Dplugin=help -Dmojo=describe感受一下吧!

    2). mvn archetype:generate 你是怎么创建你的maven项目的?是不是像这样:mvn archetype:create -DarchetypeArtifactId=maven-archetype-quickstart -DgroupId=com.ryanote -Dartifact=common,如果你还再用的话,那你就out了,现代人都用mvn archetype:generate了,它将创建项目这件枯燥的事更加人性化,你再也不需要记那么多的archetypeArtifactId,你只需输入archetype:generate,剩下的就是做”选择题”了.

    3). mvn tomcat:run 用了maven后,你再也不需要用eclipse里的tomcat来运行web项目(实际工作中经常会发现用它会出现不同步更新的情况),只需在对应目录(如/ryanote)里运行 mvn tomat:run命令,然后就可在浏览器里运行http://localhost:8080/ryanote查看了.如果你想要更多的定制,可以在pom.xml文件里加下面配置: 01 02 03 04 org.codehaus.mojo 05 tomcat-maven-plugin 06 07 /web 08 9090 09 10 11 12 当然你也可以在命令里加参数来实现特定的功能,下面几个比较常用: 1. 跳过测试:-Dmaven.test.skip(=true) 2. 指定端口:-Dmaven.tomcat.port=9090 3. 忽略测试失败:-Dmaven.test.failure.ignore=true 当然,如果你的其它关联项目有过更新的话,一定要在项目根目录下运行mvn clean install来执行更新,再运行mvn tomcat:run使改动生效.

    4). mvnDebug tomcat:run 这条命令主要用来远程测试,它会监听远程测试用的8000端口,在eclipse里打开远程测试后,它就会跑起来了,设断点,调试,一切都是这么简单.上面提到的那几个参数在这里同样适用.

    5). mvn dependency:sources 故名思义,有了它,你就不用到处找源码了,运行一下,你项目里所依赖的jar包的源码就都有了

    下面介绍几个常用的Goal

    命令 描述
    tomcat:deploy 部署一个web war包
    tomcat:reload 重新加载web war包

    tomcat:start

    启动tomcat

    tomcat:stop

    停止tomcat

    tomcat:undeploy

    停止一个war包
    tomcat:run 启动嵌入式tomcat ,并运行当前项目
  • 相关阅读:
    LeetCode 338. 比特位计数
    LeetCode 208. 实现 Trie (前缀树)
    初识restful api接口
    破解 Navicat Premium 12
    ES6 Reflect的认识
    ES6 WeakMap和WeakSet的使用场景
    sublime 注释模版插件DocBlockr的使用
    js call方法的使用
    ES6 Generator的应用场景
    ES6 Symbol的应用场景
  • 原文地址:https://www.cnblogs.com/zhunian/p/4684797.html
Copyright © 2020-2023  润新知