Вы должны быть в состоянии сделать это с помощью Maven Exec Plugin. Для моего проекта я решил создать контрольный профиль, который можно запустить с помощью команды maven mvn compile -P benchmarks
.
Чтобы настроить что-то вроде этого, вы можете добавить что-то вдоль линий следующего к pom.xml
, указав сферу пути к классам тест с помощью <classpathScope>
тега:
<profiles>
<profile>
<id>benchmarks</id>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<executions>
<execution>
<id>caliper</id>
<phase>compile</phase>
<goals>
<goal>java</goal>
</goals>
<configuration>
<classpathScope>test</classpathScope>
<mainClass>com.google.caliper.runner.CaliperMain</mainClass>
<commandlineArgs>com.stackoverflow.BencharkClass,com.stackoverflow.AnotherBenchmark</commandlineArgs>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
В качестве альтернативы, если вы» хотел бы задать много вариантов для суппорта, это, вероятно, проще использовать <arguments>
теги:
<executions>
<execution>
<id>caliper</id>
<phase>compile</phase>
<goals>
<goal>java</goal>
</goals>
<configuration>
<classpathScope>test</classpathScope>
<mainClass>com.google.caliper.runner.CaliperMain</mainClass>
<arguments>
<argument>com.stackoverflow.BencharkClass</argument>
<argument>--instrument</argument>
<argument>runtime</argument>
<argument>-Cinstrument.allocation.options.trackAllocations=false</argument>
</arguments>
</configuration>
</execution>
</executions>
Дополнительные параметры конфигурации (литий ke -Cinstrument.allocation.options.trackAllocations
) можно найти here и больше вариантов исполнения (например, --instrument
выше) можно найти here.
Затем, если вы используете плагин Eclipse, м2 Maven, вы можете щелкнуть правой кнопкой мыши на папку проекта и выберите Run as... -> Maven Build...
и ввести что-то вроде clean install
в Goals
поле ввода и benchmarks
в Profiles
поле ввода и нажмите Run
и вас должен увидеть результат в консоли Eclipse.
Важно отметить, что я использовал локальную сборку снимков Caliper, проверив источник с помощью git clone https://code.google.com/p/caliper/
, который рекомендуется на момент публикации, чтобы воспользоваться новейшим API.
Конфигурация запуска Eclipse просто перечисляет «Зависимости Maven» для моего пути к классам. Кажется, он не разделяет тестовые и нетестовые зависимости. Вы подтвердили, что в настоящее время включен суппорт? – gk5885
@ gk5885, он доступен в Проводнике пакетов, доступный в пути класса при запуске конфигурации типа «JUnit», но недоступный в пути класса при запуске конфигурации типа «Java Application». –
Я не уверен, что полностью понимаю ваш сценарий, особенно «запустил произвольный класс с тестовыми зависимостями в пути к классам». Разве вы не можете просто создать и запустить JUnit-тест, который бы точно делал бы то, что обычно выполнял бы CaliperMain в своем основном методе? – Morfic