我想将我的应用程序分发为嵌入在Apache Tomcat中的WAR。那就是我想要将Tomcat与我的应用程序一起分发。
如何使用Maven完成这种分发包装?
我见过Maven Cargo Plugin,但它似乎是为了在本地容器中部署应用程序。也许我需要的是对Cargo插件的额外步骤。 cargo:package
似乎很有趣,但缺乏文档。
答案 0 :(得分:8)
阐述Tomasz的评论,你可以做到以下几点来实现这一点。
答案 1 :(得分:4)
更好的方式可能是Heroku documentation中指定的内容(虽然它也适用于非Heroku应用程序)
总结(以防链接死亡)
Tomcat embed包可以为您提供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();
}
}