web-dev-qa-db-fra.com

Projet Maven Run

Existe-t-il une "phase" ou un "objectif" Maven pour exécuter simplement la méthode principale d'une classe Java? J'ai un projet que je voudrais tester manuellement en faisant simplement quelque chose comme "exécuter MVN".

207
Verhogen

Voir le plugin exec maven . Vous pouvez exécuter les classes Java à l'aide de:

mvn exec:Java -Dexec.mainClass="com.example.Main" [-Dexec.args="argument1"] ...

L'appel peut être aussi simple que mvn exec:Java si la configuration du plug-in est dans votre pom.xml. Le site de plugin sur Mojohaus a un exemple plus détaillé .

<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>
322
Robert Munteanu

Les réponses mentionnées ci-dessus sont correctes, mais je les simplifie pour des personnes comme moi. Allez au fichier pom de votre projet. Ajoutez une nouvelle propriété exec.mainClass et donnez sa valeur en tant que classe contenant votre méthode principale. Pour moi, c’était DriverClass dans mainpkg. Changez-le selon votre projet. enter image description here

Cela fait, accédez au dossier qui contient le pom.xml de votre projet et exécutez-le à l'aide de la commande Invite mvn exec:Java. Cela devrait appeler la méthode principale.

13
shshnk

1. Éditez POM.xml

Ajoutez la propriété suivante dans pom.xml. Assurez-vous d’utiliser le nom de classe complet (c'est-à-dire avec le nom du paquet) qui contient la méthode main:

<properties>
        <exec.mainClass>${fully-qualified-class-name}</exec.mainClass>
</properties>

2. Exécuter la commande

Maintenant, depuis le terminal, lancez la commande suivante:

mvn clean compile exec:Java

NOTE Vous pouvez transmettre d'autres arguments via le drapeau -Dexec.args="xxx".

7
Saikat Sengupta

Pas besoin d'ajouter un nouveau plugin dans pom.xml. Il suffit de lancer cette commande

mvn org.codehaus.mojo:exec-maven-plugin:1.5.0:Java -Dexec.mainClass="com.example.Main" | grep -Ev '(^\[|Download\w+:)' 

Voir le plugin maven exec pour plus d'utilisation.

6
arulraj.net
6
dfa

La commande clean package exec:Java -P Class_Containing_Main_Method est également une option si vous ne possédez qu'une seule méthode principale (PSVM) dans le projet, avec la configuration Maven suivante.

N'oubliez pas de mentionner la classe dans la section <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 Exécuter la configuration en plus de la configuration Maven ci-dessus:

enter image description here

2
Abhijeet