Czy istnieje "faza" lub "cel" Mavena, aby po prostu wykonać główną metodę klasy Java? Mam projekt, który chciałbym przetestować ręcznie, po prostu robiąc coś w rodzaju "mvn run".Maven Run Project
Odpowiedz
Zobacz exec maven plugin. Można uruchomić klas Java przy użyciu:
mvn exec:java -Dexec.mainClass="com.example.Main" [-Dexec.args="argument1"] ...
Wywołanie może być proste jak mvn exec:java
jeśli konfiguracja wtyczki jest w pom.xml. Strona wtyczki na Mojohaus ma more detailed example.
<project>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<configuration>
<mainClass>com.example.Main</mainClass>
<arguments>
<argument>argument1</argument>
</arguments>
</configuration>
</plugin>
</plugins>
</build>
</project>
Daj Exec Maven plugin spróbować polecenia
clean package exec:java -P Class_Containing_Main_Method
jest również opcja, jeśli masz tylko jedną metodę Main (PSVM) w projekcie, z następującym Maven Setup.
Nie zapomnij wspomnieć klasę w sekcji <properties></properties>
z pom.xml
:
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.main.class>com.test.service.MainTester</java.main.class>
</properties>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<configuration>
<mainClass>${java.main.class}</mainClass>
</configuration>
</plugin>
STS Run Configuration wraz z wyżej konfiguracji Maven:
Wyżej wymienione odpowiedzi są poprawne ale upraszczam go dla takich noobów jak ja. Przejdź do pliku pom w swoim projekcie. Dodaj nową właściwość exec.mainClass
i podaj jej wartość jako klasę zawierającą główną metodę. Dla mnie było to DriverClass
w mainpkg
. Zmień go zgodnie z projektem.
Uczyniwszy to przejdź do folderu, który zawiera uruchomić ten projekt na pom.xml
iw wierszu polecenia mvn exec:java
. To powinno wywołać główną metodę.
Nie trzeba dodawać nowej wtyczki do pom.xml. Po prostu uruchom polecenie:
mvn org.codehaus.mojo:exec-maven-plugin:1.5.0:java -Dexec.mainClass="com.example.Main" | grep -Ev '(^\[|Download\w+:)'
Zobacz więcej informacji na stronie maven exec plugin.
Przekaż dalsze argumenty przez '-Dexec.args =" ... arg ... "' – sstn
exec: java nie zrobił nic dla mnie, ale exec: exec załatwił sprawę. –
Oto jak powinna wyglądać odpowiedź! referencja + prosty przykład + złożony przykład. prosty przykład zrobił mi sztuczkę (nie trzeba już konfiguracji) – codewing
czy istnieje nowsza wersja tej wtyczki (nowsza niż 1.2.1?) –