Question

Y at-il une « phase » Maven ou « but » d'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 « run mvn ».

Était-ce utile?

La solution

Voir la plug-in exec Maven . Vous pouvez exécuter les classes Java en utilisant:

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

L'invocation 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 plus détaillée exemple .

<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>

Autres conseils

Les réponses ci-dessus mentionnées sont correctes, mais je simplifie pour noobs comme me.Go au fichier pom de votre projet. Ajouter une nouvelle propriété exec.mainClass et donner sa valeur en tant que classe qui contient votre principale méthode. Pour moi, il a été DriverClass dans mainpkg. Changer selon votre projet. entrer la description d'image ici

Après avoir fait cela Accédez au dossier qui contient le pom.xml de votre projet et exécuter sur la commande mvn exec:java rapide. Cela devrait appeler la méthode principale.

1. Modifier pom.xml

Ajoutez la propriété suivante dans pom.xml. Assurez-vous d'utiliser le nom complet de la classe (par exemple avec le nom du package) qui contient la méthode main:

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

2. Commande Exécuter

à partir du terminal, déclencher la commande suivante:

mvn clean compile exec:java

NOTE Vous pouvez passer d'autres arguments par drapeau -Dexec.args="xxx".

Pas besoin d'ajouter un nouveau plugin dans pom.xml. Il suffit d'exécuter cette commande

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

Voir la plugin Maven exec plus l'utilisation.

commande clean package exec:java -P Class_Containing_Main_Method est également une option si vous avez une seule méthode principale (PSVM) dans le projet, avec la configuration suivante Maven.

Ne pas oublier 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 de configuration Exécuter avec au-dessus de configuration Maven:

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top