我想分发我的应用程序打包为WAR嵌入在Apache Tomcat中。这是我想分配Tomcat和我的应用程序。如何使用maven将我的web应用程序和tomcat打包在一起?
这种分发包装怎么能用Maven完成?
我看过Maven Cargo Plugin,但它似乎适合在本地部署容器中的应用程序。也许在Cargo插件上再增加一个步骤就是我需要的。 cargo:package
似乎很有趣,但缺乏文档。
我想分发我的应用程序打包为WAR嵌入在Apache Tomcat中。这是我想分配Tomcat和我的应用程序。如何使用maven将我的web应用程序和tomcat打包在一起?
这种分发包装怎么能用Maven完成?
我看过Maven Cargo Plugin,但它似乎适合在本地部署容器中的应用程序。也许在Cargo插件上再增加一个步骤就是我需要的。 cargo:package
似乎很有趣,但缺乏文档。
详细阐述Tomasz的评论,你可以做到以下几点来实现这一点。
将tomcat下载并安装到您的本地存储库。
MVN安装:安装文件-DgroupId = org.apache -DartifactId = tomcat的-Dversion = 7.0.10 -Dpackaging =拉链-Dfile = /路径/到/文件
使用unpack
到目标maven dependency plugin
解压缩到tomcat的工作文件夹
maven assembly plugin
放置在文件夹中的webapps应用战争,创建一个zip感谢Raghuram。虽然我还没有尝试过,但看看你提供的链接,似乎maven依赖插件是一条路 – 2011-04-06 15:14:54
一个更好的办法可能是作为Heroku documentation规定(不过,在非Heroku的应用以及工作)的东西
总结(以防万一链接死亡)
Tomcat的嵌入包装罐给你一个Tomcat
API,你可以在你的主类的一个参考,
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-core</artifactId>
<version>${tomcat.version}</version>
</dependency>
而且你需要一个主类类似,
package launch;
import java.io.File;
import org.apache.catalina.startup.Tomcat;
public class Main {
public static void main(String[] args) throws Exception {
String webappDirLocation = "src/main/webapp/";
Tomcat tomcat = new Tomcat();
tomcat.setPort(8080);
tomcat.addWebapp("/", new File(webappDirLocation).getAbsolutePath());
System.out.println("configuring app with basedir: " +
new File("./" + webappDirLocation).getAbsolutePath());
tomcat.start();
tomcat.getServer().await();
}
}
你见过'maven assembly plugin'吗? http://docs.codehaus.org/display/MAVENUSER/Delivery+with+Tomcat – 2011-04-05 15:21:18
不,现在检查。感谢您的链接 – 2011-04-05 15:24:12
请记住,将您的应用程序与Tomcat打包在一起可能意味着您的用户将不会使用最新版本的Tomcat。 Tomcat还需要安装Java(JRE)。如果你包含Tomcat,也可能包含JRE。 – Bernard 2011-04-05 16:41:15