На вопрос, как создать работающий JAR-файл с использованием фреймворка Javalite?У Javalite нет известной точки входа / основного класса.Я просматривал некоторые примеры, но не нашел никакой подсказки.
Этот jar-файл будет работать автономно на сервере с помощью команды java -jar.
Ниже приведен фрагмент моего плагина в файле pom.xml
Упаковка
<modelVersion>4.0.0</modelVersion>
<groupId>org.javalite</groupId>
<artifactId>activeweb-simple</artifactId>
<packaging>jar</packaging>
<version>1.1-SNAPSHOT</version>
<name>ActiveWeb Example WebApp</name>
Плагин
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<!-- Jar file entry point -->
<mainClass>com.company.Application</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
И Application.java,
public class Application {
public static void main(String[] args) throws Exception {
String webappDirLocation = "src/main/webapp/";
Tomcat tomcat = new Tomcat();
String webPort = System.getenv("PORT");
if(webPort == null || webPort.isEmpty()) {
webPort = "8081";
}
tomcat.setPort(Integer.valueOf(webPort));
StandardContext ctx = (StandardContext) tomcat.addWebapp("/", new File(webappDirLocation).getAbsolutePath());
System.out.println("configuring app with basedir: " + new File("./" + webappDirLocation).getAbsolutePath());
File additionWebInfClasses = new File("target/classes");
WebResourceRoot resources = new StandardRoot(ctx);
resources.addPreResources(new DirResourceSet(resources, "/WEB-INF/classes",
additionWebInfClasses.getAbsolutePath(), "/"));
ctx.setResources(resources);
tomcat.start();
tomcat.getServer().await();
}
}
Примечание. В настоящее время я использую tomcat в качестве встроенного http-сервера, чтобы файл JAR работал как стенд-в одиночестве.Но Javalite ActiveWeb, вероятно, найдет способ для этого.