如何使用 Maven 和 tomcat 部署 Web 应用程序?

How to deploy a web app using maven and tomcat?

我正在尝试部署网络应用程序,但没有成功,我正在使用

我有这样的配置:

在 apache-maven-3.2.5 (settings.xml)

<server>
  <id>TomcatServer</id>
  <username>tomcatg</username>
  <password>sg</password>
</server>

在apache-tomcat-7.0.63 (tomcat-users.xml)

    <tomcat-users>

<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username="tomcatg" password="sg" roles="manager-gui"/>
<user username="tomcats" password="ss" roles="manager-script" />
</tomcat-users>

在pom.xml

<?xml version="1.0" encoding="UTF-8"?>

http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0

<groupId>simple</groupId>
<artifactId>simple</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<dependencies>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
        <scope>provided</scope>
    </dependency>

    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.5.6</version>
        <type>jar</type>
    </dependency>

    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-simple</artifactId>
        <version>1.5.6</version>
        <type>jar</type>
    </dependency>


</dependencies>

<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.tomcat.maven</groupId>
            <artifactId>tomcat7-maven-plugin</artifactId>
            <version>2.2</version>
            <configuration>
                <url>http://127.0.0.1:8080/manager/text/</url>
                <server>TomcatServer</server>
                <username>tomcatg</username>
                <password>sg</password>
                <path>/firstwebapp</path>
            </configuration>
        </plugin>
    </plugins>
</build>

I select tomcat7:deploy 并按下 运行 Maven 构建按钮:

    /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/bin/java "-Dmaven.home=/Applications/IntelliJ IDEA 14.app/Contents/plugins/maven/lib/maven3" "-Dclassworlds.conf=/Applications/IntelliJ IDEA 14.app/Contents/plugins/maven/lib/maven3/bin/m2.conf" -Didea.launcher.port=7533 "-Didea.launcher.bin.path=/Applications/IntelliJ IDEA 14.app/Contents/bin" -Dfile.encoding=UTF-8 -classpath "/Applications/IntelliJ IDEA 14.app/Contents/plugins/maven/lib/maven3/boot/plexus-classworlds-2.4.jar:/Applications/IntelliJ IDEA 14.app/Contents/lib/idea_rt.jar" com.intellij.rt.execution.application.AppMain org.codehaus.classworlds.Launcher -Didea.version=14.1.4 org.apache.tomcat.maven:tomcat7-maven-plugin:2.2:deploy
[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building simple 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] >>> tomcat7-maven-plugin:2.2:deploy (default-cli) @ simple >>>
[INFO] 
[INFO] --- maven-resources-plugin:2.5:resources (default-resources) @ simple ---
[debug] execute contextualize
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 0 resource
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ simple ---
[INFO] Nothing to compile - all classes are up to date
[INFO] 
[INFO] --- maven-resources-plugin:2.5:testResources (default-testResources) @ simple ---
[debug] execute contextualize
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory /Users/carloseduardoanguloustarez/IdeaProjects/simple/src/test/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ simple ---
[INFO] Nothing to compile - all classes are up to date
[INFO] 
[INFO] --- maven-surefire-plugin:2.10:test (default-test) @ simple ---
[INFO] Surefire report directory: /Users/carloseduardoanguloustarez/IdeaProjects/simple/target/surefire-reports

-------------------------------------------------------
 T E S T S
-------------------------------------------------------

Results :

Tests run: 0, Failures: 0, Errors: 0, Skipped: 0

[INFO] 
[INFO] --- maven-war-plugin:2.1.1:war (default-war) @ simple ---
[INFO] Packaging webapp
[INFO] Assembling webapp [simple] in [/Users/carloseduardoanguloustarez/IdeaProjects/simple/target/simple-1.0-SNAPSHOT]
[INFO] Processing war project
[INFO] Copying webapp resources [/Users/carloseduardoanguloustarez/IdeaProjects/simple/src/main/webapp]
[INFO] Webapp assembled in [26 msecs]
[INFO] Building war: /Users/carloseduardoanguloustarez/IdeaProjects/simple/target/simple-1.0-SNAPSHOT.war
[INFO] WEB-INF/web.xml already added, skipping
[INFO] 
[INFO] <<< tomcat7-maven-plugin:2.2:deploy (default-cli) @ simple <<<
[INFO] 
[INFO] --- tomcat7-maven-plugin:2.2:deploy (default-cli) @ simple ---
[INFO] Deploying war to http://127.0.0.1:8080/firstwebapp  
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Uploading: http://127.0.0.1:8080/manager/text//deploy?path=%2Ffirstwebapp
2076/9092 KB   
Uploading: http://127.0.0.1:8080/manager/text//deploy?path=%2Ffirstwebapp
2072/9092 KB   
Uploading: http://127.0.0.1:8080/manager/text//deploy?path=%2Ffirstwebapp
2084/9092 KB   
Uploading: http://127.0.0.1:8080/manager/text//deploy?path=%2Ffirstwebapp
2076/9092 KB   
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.012s
[INFO] Finished at: Sat Jul 11 11:38:07 BOT 2015
[INFO] Final Memory: 12M/248M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.tomcat.maven:tomcat7-maven-plugin:2.2:deploy (default-cli) on project simple: Cannot invoke Tomcat manager: Broken pipe -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

Process finished with exit code 1

但是我的网络应用程序没有出现在 tomcat 服务器管理器中

我做错了什么?

看这里:

如您所见,有两个可能的原因:

(1) 您未通过身份验证

(2) tomcat 管理员的路径段 url 制造麻烦

在情况 1 中,您应该定义一个单独的部署用户 经理脚本。之后你必须重新启动 tomcat。

在情况 2 中,您应该尝试使用路径:使用 manager/, manager, manager/text, manager/text/ 或它们的组合。 Tomcat 一些旧版本中的尾部斜杠存在问题。

您正在构建 jar 文件。 /Users/carloseduardoanguloustarez/IdeaProjects/simple/target/simple-1.0-SNAPSHOT.jar

Jar file cannot be deployed in Tomcat. You can run jar file in following fashion.

java -jar myhelloworldapp.jar

If it is a web application, please change the packaging to war. By default packaging is jar. maven

<modelVersion>4.0.0</modelVersion>
    <groupId>simple</groupId>
    <artifactId>simple</artifactId>
    <version>1.0-SNAPSHOT</version>
     <packaging>war</packaging>