Pergunta
Existe uma "fase" Maven ou "meta" para simplesmente executar o método principal de uma classe Java? Eu tenho um projeto que eu gostaria de testar manualmente, basta fazer algo como "run mvn".
Solução
Veja a exec Maven plug-in . Você pode executar classes Java usando:
mvn exec:java -Dexec.mainClass="com.example.Main" [-Dexec.args="argument1"] ...
A invocação pode ser tão simples como mvn exec:java
se a configuração do plugin está na sua pom.xml. O site plugin em Mojohaus tem um mais detalhado exemplo .
<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>
Outras dicas
As respostas acima mencionados estão corretas, mas eu estou simplificando-o para noobs como me.Go para arquivo pom do seu projeto. Adicionar um novo exec.mainClass
propriedade e dar o seu valor como a classe que contém o método principal. Para mim, foi DriverClass
em mainpkg
. Mudá-lo de acordo com seu projeto.
Tendo feito isso Navegue até a pasta que contém pom.xml
do seu projeto e executar este no prompt de comando mvn exec:java
. Isso deve chamar o método principal.
1. Editar pom.xml
Adicione a seguinte propriedade em pom.xml
. Certifique-se de usar o nome de classe totalmente qualificado (ou seja, com o nome do pacote) que contém o método main
:
<properties>
<exec.mainClass>${fully-qualified-class-name}</exec.mainClass>
</properties>
2. Executar Comando
Agora, a partir da, gatilho o seguinte comando terminal:
mvn clean compile exec:java
NOTA Você pode passar mais argumentos via bandeira -Dexec.args="xxx"
.
Dê o Exec Maven plug-in uma tentativa
Não há necessidade de adicionar novo plugin no POM. Basta executar este comando
mvn org.codehaus.mojo:exec-maven-plugin:1.5.0:java -Dexec.mainClass="com.example.Main" | grep -Ev '(^\[|Download\w+:)'
Veja a Maven exec plugin de para mais uso.
comando clean package exec:java -P Class_Containing_Main_Method
também é uma opção se você tiver apenas um método Main (PSVM) no projeto, com a seguinte configuração Maven.
Não esqueça de mencionar a classe na seção <properties></properties>
de 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 Configuração de execução juntamente com acima de configuração Maven: