Как использовать Maven classpath для запуска основного класса Java? - PullRequest
7 голосов
/ 07 июня 2011

В настоящее время я использую Maven для создания своего проекта JavaScript Rhino, загрузки зависимых библиотек и управления пути к классам во время выполнения. Я могу запустить точку входа 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. экспортировать classpath, который maven использовал бы во время выполнения, чтобы я мог просто запустить свою программу из скрипта?

1 Ответ

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...