Как использовать Maven classpath для запуска основного класса Java?

в настоящее время я использую Maven для создания моего проекта Rhino JavaScript, загрузки зависимых библиотек и управления classpath во время выполнения. Я могу запустить точку входа JavaScript с помощью плагина Maven exec следующим образом:

        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <version>1.1</version>
            <executions>
                <execution>
                    <goals>
                        <goal>java</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <mainClass>org.mozilla.javascript.tools.shell.Main</mainClass>
                <classpathScope>runtime</classpathScope>
                <arguments>
                    <argument>path/to/entryPoint.js</argument>
                </arguments>
            </configuration>
        </plugin>

это работает хорошо, но проблема в том, что maven занимает около 10 секунд только для запуска, что примерно в 10 раз дольше, чем требуется моей программе для запуска. Есть ли способ либо:

  1. повышение производительности Maven exec плагин, так что это занимает меньше времени, чтобы начать, или
  2. экспортировать путь к классам, который maven будет использовать во время выполнения, чтобы я мог просто запустить свою программу из сценария?

1 ответов


  1. можно использовать -o / --offline переключитесь, чтобы сказать Maven не беспокоиться о проверке обновлений моментальных снимков или плагинов.

  2. использовать appassembler или assembly плагины для создания сценариев запуска, которые будут автоматически (в случае appassembler) ссылаться на нужный путь к классам.