Как создать работающий JAR-файл с использованием Javalite Framework в качестве автономного http? - PullRequest
0 голосов
/ 21 мая 2018

На вопрос, как создать работающий 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, вероятно, найдет способ для этого.

1 Ответ

0 голосов
/ 21 мая 2018

Вы можете создавать любое количество различных типов проектов JavaLite, таких как автономные, использующие некоторые функции: JavaLite HTTP, ActiveJDBC, JavaLite Async и т. Д. Кроме того, если вы хотите создать веб-приложение, вам также потребуется ActiveWeb.,

Вот список примеров из репозитория JavaLite:

ActiveJDBC:

ActiveWeb:

В каждом примере приложения есть READMEфайл, который вы можете прочитать, чтобы увидеть, для чего предназначен пример.

Чтобы начать любой проект, просто клонируйте репозиторий, запустите его и начните изменять его по своему вкусу.

Кроме того, обратите внимание на страницу релизов http://javalite.io/releases и обновляйте свои зависимости.

...