Frage Mvn kompiliere vor exec


Ich versuche mein POM so einzurichten, dass wenn ich es tue mvn exec:exec oder mvn exec:java Es kompiliert zuerst die Quelle und wenn sie erfolgreich ist, führe sie aus.

Ich habe folgendes und habe versucht das zu bewegen <execution> Teil über aber kann es nicht zur Arbeit bringen:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
            </configuration>
            <executions>
                <execution>
                    <phase>exec</phase>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <version>1.2.1</version>
            <configuration>
                <mainClass>my.main.class</mainClass>
            </configuration>
        </plugin>
    </plugins>
</build>

Wenn ich beides mache mvn exec:exec ... oder mvn exec:java Es kompiliert nicht zuerst. Ich habe versucht, die <execution> Teil in der exec Plugin-Abschnitt, aber das hat auch nicht funktioniert?


12
2017-08-21 08:24


Ursprung


Antworten:


Sie können das Exec-Plugin an eine Phasenfolge binden compile im Build-Lebenszyklus (verify im folgenden Beispiel):

<profile>
    <id>proxy</id>
    <build>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>exec-maven-plugin</artifactId>
                <version>1.2.1</version>
                <executions>
                    <execution>
                        <phase>verify</phase>
                        <goals>
                            <goal>exec</goal>
                        </goals>
                        <configuration>
                           <mainClass>my.main.class</mainClass>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</profile> 

und dann rennen mvn verify.

Ich sehe die Antwort ist sehr spät und Sie haben vielleicht eine Lösung gefunden. Ich gehe nur als Referenz für andere, die es brauchen könnten.


2
2018-05-27 09:04



Es ist ein altes Thema, aber jemand anderes könnte an einer alternativen Lösung dafür interessiert sein.

Es ist nicht genau das, was Sie gesucht haben, aber Sie können mit einem einzigen Befehl kompilieren und ausführen:

mvn compile exec:exec

Diesen Weg Maven Kompiliert das Projekt immer vor der Ausführung.


1
2017-07-27 15:18