запустите основной класс проекта Maven [дубликат]
этот вопрос уже есть ответ здесь:
Maven Run Project
6 ответов
Я создал простое консольное Java-приложение, которое построено с Maven. Есть ли способ, что основной класс (который не требует никаких аргументов) может быть запущен из командной строки с помощью команды maven, например:
mvn run-app com.example.MainClass
2 ответов:
попробовать Maven-exec-plugin. Оттуда:
mvn exec:java -Dexec.mainClass="com.example.Main"это будет запускать ваш класс в JVM. Вы можете использовать
-Dexec.args="arg0 arg1"для передачи аргументов.если вы находитесь на Windows, применить кавычки
exec.mainClassиexec.args:mvn exec:java -D"exec.mainClass"="com.example.Main"если вы делаете это регулярно, вы можете добавить параметры в ПОМ.xml также:
<plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>1.2.1</version> <executions> <execution> <goals> <goal>java</goal> </goals> </execution> </executions> <configuration> <mainClass>com.example.Main</mainClass> <arguments> <argument>foo</argument> <argument>bar</argument> </arguments> </configuration> </plugin>
хотя Maven exec делает трюк здесь, я нашел его довольно плохим для реального теста. В ожидании Мэйвен оболочки, и надеясь, что это может помочь другим, я, наконец, вышел на это РЕПО mvnexec
клонировать его, и символическая ссылка скрипт где-то в пути. Я использую
~/bin/mvnexec, а я~/binна моем пути. Я думаю mvnexec это хорошее название для скрипта, но до вас, чтобы изменить символьная ссылка...запустите его из корня вашего проекта, где вы можете увидеть src и целевые dirs.
скрипт поиск для классов с основным методом, предлагают выбрать, чтобы выбрать один (например с mavenized JMeld)
$ mvnexec 1) org.jmeld.ui.JMeldComponent 2) org.jmeld.ui.text.FileDocument 3) org.jmeld.JMeld 4) org.jmeld.util.UIDefaultsPrint 5) org.jmeld.util.PrintProperties 6) org.jmeld.util.file.DirectoryDiff 7) org.jmeld.util.file.VersionControlDiff 8) org.jmeld.vc.svn.InfoCmd 9) org.jmeld.vc.svn.DiffCmd 10) org.jmeld.vc.svn.BlameCmd 11) org.jmeld.vc.svn.LogCmd 12) org.jmeld.vc.svn.CatCmd 13) org.jmeld.vc.svn.StatusCmd 14) org.jmeld.vc.git.StatusCmd 15) org.jmeld.vc.hg.StatusCmd 16) org.jmeld.vc.bzr.StatusCmd 17) org.jmeld.Main 18) org.apache.commons.jrcs.tools.JDiff #?если один из них выбран (набрав номер), вы запросите аргументы (вы можете избежать с
mvnexec -P)по умолчанию он компилирует проект каждого запуска. но вы можете избежать этого, используя
mvnexec -Bэто позволяет искать только в тестовых классах
-Mили--no-main, или только в основные классы-Tили--no-test. также есть опция фильтра по имени-f <whatever>надеюсь, что это может сэкономить вам время, для меня это делает.
Comments