Лучшим способом может быть что-то, как указано в документации 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();
}
}