Maven: Vermeiden Sie die Bereitstellung von Projektpaket-implizierten Artefakten während des Standard-Build-Lebenszyklus

Ist es möglich, die Bereitstellung des Artefakts zu vermeiden, das während der Projektverpackung erstellt wird?'deploy: deploy' wird bearbeitet?

Ich meine folgendes:

Angenommen, wir haben eine'pom.xml' für Webanwendung und definieren Sie die Verpackungsart als'Krieg';wir wollen auch nicht zusammenbauen'*.Krieg' Artefakt oder'*.Postleitzahl' das enthält unsere Anwendung sowie einen Servlet-Container;wir wollen nur das bereitstellen'*.Postleitzahl' Artefakt während'deploy: deploy' wird bearbeitet;

Das heißt Ich möchte in der Lage sein zu rennen'mvn deploy' und hat die folgenden Ergebnisse:

'myapp.war' ist konstruiert;'myapp-standalone.zip' ist konstruiert;'myapp-standalone.zip' wird im Remote - Zielrepository bereitgestellt (beachte, dass es mich nicht stört, wenn'myapp.war' wird hier im lokalen Repository installiert);

Ich überprüfteKrieg: Kriegsdokumentation und gefunden'primaryArtifact' Parameter. Es wird jedoch nur das lokale Repository erwähnt.

Ich habe das folgende POM ausprobiert, es wird jedoch auch weiterhin bereitgestellt'*.Krieg' oder'*.Postleitzahl' zum Remote-Repository:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.mygroup</groupId>
    <artifactId>myapp</artifactId>
    <packaging>war</packaging>
    <version>1.0-SNAPSHOT</version>
    <name>myapp</name>
    <url>http://maven.apache.org</url>

    <dependencies>
        <!-- dependencies go here -->
    </dependencies>

    <build>
        <plugins>
            <! -- plugins like 'compiler' etc -->

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <configuration>
                    <primaryArtifact>false</primaryArtifact>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <executions>
                    <execution>
                        <id>myapp-standalone</id>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                        <configuration>
                            <descriptors>
                                <descriptor>src/main/assembly/standalone.xml</descriptor>
                            </descriptors>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

    <distributionManagement>
        <repository>
            <-- target repository information -->
        </repository>
        <snapshotRepository>
            <-- target repository information -->
        </snapshotRepository>
    </distributionManagement>
</project>

Es scheint, dass ich das gewünschte Verhalten erreichen kann, indem ich das Projektpaket als deklariere'pom' und manuelles Konfigurieren aller von implizierten Mojos'Krieg' Verpackung ('Ressourcen: Ressourcen', 'compiler: compile', 'resources: testResources', 'compiler: testCompile', todsichere: test, Krieg: Krieg, 'install: install', 'deploy: deploy'). Dies würde den POM jedoch ziemlich ausführlich machen, und das möchte ich vermeiden.

Soweit ich weiß, besteht Maven Way darin, immer ein Artefakt zu haben, das vom Typ der Projektverpackung als eines der Projektartefakte impliziert wird. Es ist jedoch nicht klar, was der Maven-Benutzer tun soll, wenn er ein Artefakt erhalten möchte, das keinem Standardverpackungstyp (z. B. Einzelverpackung) entspricht'*.Postleitzahl' Archiv).

Irgendwelche Gedanken?

Grüße, Denis

Antworten auf die Frage(1)

Ihre Antwort auf die Frage