我想分發我的應用程序打包爲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