gpt4 book ai didi

tomcat - 使用 tomcat-maven-plugin 部署预构建的 WAR

转载 作者:行者123 更新时间:2023-11-28 21:50:38 25 4
gpt4 key购买 nike

我有一个由 Warbler 正确生成的 WAR 文件,当我手动完成这一切时它可以正常工作。

我正在尝试使用 maven(通过 Hudson)

1)调用warble(成功)

<phase>package</phase>
<configuration>
<executable>/bin/bash</executable>
<workingDirectory>.</workingDirectory>
<arguments>
<argument>-c</argument>
<argument>
echo "Sourcing bashrc"
source ~/.bashrc
rvm use jruby
echo "Path is $PATH"
echo "Gem path is $GEM_PATH"
warble --trace
rm -R target/*
mv workspace.war target/yams.war
</argument>
</arguments>
</configuration>

2) 部署到tomcat

这是我遇到问题的第二部分。我只想告诉 maven 获取我刚刚生成的 WAR 文件(并帮助移动到 target/,正如它所期望的那样)并部署它。

问题是,如果我没有为整个项目指定打包,它只会跳过任何部署(“跳过非 WAR”)。如果我指定 WAR 包装,它会尝试自己制作一个无用的 WAR,这没关系,但它会不断要求越来越多的信息(webxml 等)来制作这个无用的 WAR,无论如何我最终都会删除和忽略它。

基本上,是否有一种简单的方法可以对 maven 说“将我刚刚在工作区/目标/中创建的 war 部署为你自己创建的任何 WAR”?

最佳答案

第一次发帖:)

是的,这是可能的。诀窍是禁用 maven-war-plugin 的执行,这样它就不会尝试打包任何东西。然后你可以简单地将 tomcat 指向你已经组装好的预构建 war 。这是我的 POM,它部署了预构建 lambda Probe war 文件:

<project>
<modelVersion>4.0.0</modelVersion>

<artifactId>Probe</artifactId>
<packaging>war</packaging>

<name>Probe</name>

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<executions>
<execution>
<id>default-war</id>
<phase>none</phase>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>tomcat-maven-plugin</artifactId>
<configuration>
<warFile>Probe.war</warFile>
</configuration>
</plugin>
</plugins>
</build>
</project>

感谢waffel's Weblog为我提供通用解决方案,使我弄清楚如何禁用 maven-war-plugin 的执行。 :)

*编辑:您可能还想禁用 maven-install-plugin 以防止 maven 在您调用经常使用的“mvn clean install”时提示(消息如下所示:)

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-install-plugin:2.3.1:install (default-install) on project : The packaging for this project did not assign a file to the build artifact

将此部分添加到您的 POM:

        <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>2.3.1</version>
<executions>
<execution>
<id>default-install</id>
<phase>none</phase>
</execution>
</executions>
</plugin>

如果您希望您的项目将 war 文件实际安装到您的存储库中,我认为您将不得不使用 maven-install-plugin 的安装:安装文件目标。

关于tomcat - 使用 tomcat-maven-plugin 部署预构建的 WAR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6114082/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com