Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在具有不同操作系统的不同机器上的两台Tomcat服务器上部署webapp_Java_Maven_Tomcat - Fatal编程技术网

Java 在具有不同操作系统的不同机器上的两台Tomcat服务器上部署webapp

Java 在具有不同操作系统的不同机器上的两台Tomcat服务器上部署webapp,java,maven,tomcat,Java,Maven,Tomcat,我想在Windows Tomcat 7和Unix Tomcat 7上逐个或同时部署我的webapp,如果可能的话。目前,我能够成功部署我的webapp 在Windows Tomcat上使用Tomcat maven插件并调用mvn tomcat7:redeploy。但是限制是我必须更改pom,以便它可以指向Unix-Tomcat 在Unix上部署webapp非常痛苦。关于如何实现这一点有什么想法吗?请导游 pom.xml org.apache.tomcat.maven tomcat7 maven

我想在Windows Tomcat 7和Unix Tomcat 7上逐个或同时部署我的webapp,如果可能的话。目前,我能够成功部署我的webapp 在Windows Tomcat上使用Tomcat maven插件并调用
mvn tomcat7:redeploy
。但是限制是我必须更改pom,以便它可以指向Unix-Tomcat 在Unix上部署webapp非常痛苦。关于如何实现这一点有什么想法吗?请导游

pom.xml

org.apache.tomcat.maven
tomcat7 maven插件
2.2
http://localhost:8080/manager/text
赢雄猫
/${project.artifactId}
.m2/settings.xml

unix tomcat
经理
经理
赢雄猫
经理
经理

您可以为每台机器创建两个单独的配置文件,然后逐个对两个配置文件执行构建

如果您不想使用配置文件,而是一次性部署到这两个配置文件,您可以定义两个
如下:

<plugin>
  <groupId>org.apache.tomcat.maven</groupId>
  <artifactId>tomcat7-maven-plugin</artifactId>
  <version>2.2</version>
  <executions>
    <execution>
      <id>deploy-windows</id>
      <configuration>
        <url>http://localhost:8080/manager/text</url>
        <server>win-tomcat</server>
        <path>/${project.artifactId}</path>
      </configuration>
    </execution>
    <execution>
      <id>deploy-unix</id>
      <configuration>
        <url>http://unix:8080/manager/text</url>
        <server>unix-tomcat</server>
        <path>/${project.artifactId}</path>
      </configuration>
    </execution>
  </executions>
</plugin>

org.apache.tomcat.maven
tomcat7 maven插件
2.2
部署窗口
http://localhost:8080/manager/text
赢雄猫
/${project.artifactId}
部署unix
http://unix:8080/manager/text
unix tomcat
/${project.artifactId}

太好了。我会试试的。没用!当我使用上述解决方案时,在执行“mvn tomcat7:redeploy”命令时获取401(未经授权的异常)。我测试了Unix tomcat服务器的部署,只是为了确保war像Windows一样上传到那里,并且它可以正常工作。为了澄清一下,您的意思是,如果插件中只有1个
,那么它对Win/Unix都可以工作?但是,如果您在
块中放置与我的示例中完全相同的配置,这会失败吗?它对Win/Unix都失败了还是只对一个失败了?是的,只有一个配置对Unix和Windows都有效。但当我添加您的代码片段并试图通过执行mvn tomcat7:redeploy在两台服务器上部署时,它失败了,出现了上面提到的401异常。这是我最初的想法。虽然这是我从未尝试过的东西,但我会去看看。谢谢你的指导。
<settings>
    <servers>
        <server>
            <id>unix-tomcat</id>
            <username>manager</username>
            <password>manager</password>
        </server>
        <server>
            <id>win-tomcat</id>
            <username>manager</username>
            <password>manager</password>
        </server>
    </servers>
</settings>
<plugin>
  <groupId>org.apache.tomcat.maven</groupId>
  <artifactId>tomcat7-maven-plugin</artifactId>
  <version>2.2</version>
  <executions>
    <execution>
      <id>deploy-windows</id>
      <configuration>
        <url>http://localhost:8080/manager/text</url>
        <server>win-tomcat</server>
        <path>/${project.artifactId}</path>
      </configuration>
    </execution>
    <execution>
      <id>deploy-unix</id>
      <configuration>
        <url>http://unix:8080/manager/text</url>
        <server>unix-tomcat</server>
        <path>/${project.artifactId}</path>
      </configuration>
    </execution>
  </executions>
</plugin>