Wie kann ich bereitstellen einer zip-Datei erstellt mit dem maven-antrun-plugin?
Ich bin mit dem maven-antrun-plugin, um eine Reihe von arbeiten mit der Ameise, die letztlich die Ergebnisse in eine zip-Datei. Ich möchte zum bereitstellen der zip-Datei in unserem maven-server (Artifactory). Das maven-antrun-Teil wie vorgesehen funktioniert und erfolgreich erstellt die zip-Datei, aber die Bereitstellung schlägt fehl mit den folgenden Fehlermeldung:
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.6:deploy (default-deploy) on project projectname: The packaging for this project did not assign a file to the build artifact
Meine POM-Datei ist wie folgt:
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.company.division</groupId>
<artifactId>projectname</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>pom</packaging>
<parent>
<groupId>com.company.product</groupId>
<artifactId>parentproject</artifactId>
<version>1.0.0</version>
</parent>
<distributionManagement>
<snapshotRepository>
<id>artifactory</id>
<name>artifactory-snapshots</name>
<url>http://localartifactoryserver/artifactory/libs-snapshot-local</url>
<uniqueVersion>false</uniqueVersion>
</snapshotRepository>
</distributionManagement>
<dependencies>
<!-- Some dependencies... -->
</dependencies>
<build>
<plugins>
<!-- Compiler plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
<encoding>UTF8</encoding>
<optimize>true</optimize>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<id>compile</id>
<phase>compile</phase>
<configuration>
<target>
<!-- Do lots of other stuff with Ant. -->
<!-- Create a zip file. -->
<zip basedir="mydir" destfile="${WORKSPACE}/MyZip.zip" />
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.6</version>
<configuration>
<groupId>${project.groupId}</groupId>
<artifactId>${project.artifactId}</artifactId>
<version>${project.version}</version>
<packaging>zip</packaging>
<file>MyZip.zip</file>
<url>${project.distributionManagement.snapshotRepository.url}</url>
</configuration>
</plugin>
</plugins>
</build>
</project>
Wenn ich das aufrufen dieses (aus der übergeordneten POM) mit mvn -U -pl projectname clean deploy
ich bekomme den oben erwähnten Fehler bei der deploy-phase. Weiß jemand, was ich falsch mache oder wie ich dies beheben können?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Lösung, die für mich gearbeitet (ich bin mir nicht sicher, ob es ideal ist, es scheint eher hackish) war zu wechseln
deploy:deploy-file
Ziel:und es explizit aufrufen:
<packaging>pom</packaging>
man hat darauf hingewiesen, dass die transitiven Abhängigkeiten eines solchen Projektes nicht gelöst werden (später bei anderen Projekten), wenn Sie bei der Bereitstellung der Artefakt auf diese Weise.Die Lösung funktionierte für mich ist das hinzufügen der
<attachartifact>
tag nach der zip-Erstellung, gefüllt mit dem gleichen Pfad und den zip-Dateinamen an . So etwas wie:Denken Sie daran, dass die zip-Datei existiert, sonst
attachartifact
liefert "Datei nicht vorhanden" - Fehler (man denke an die Verwendungwhenempty="create"
im tag-um Fehler zu vermeiden).Während der Suche nach einem Weg, um Kommentar hinzufügen zu einer zip-Datei fand ich diese Frage. Die Bereitstellung geklappt hat, aber hatte Probleme mit dem maven release zu post in nexus. Die Lösung unten ist mein problem gelöst, ich habe eine leere zip-assembly und dann einfach ersetzt es mit der zip-Datei von der ant-task, die es mir erlaubt den Kommentar zu ergänzen, um die zip-Datei.
Auf diese Weise kann das Artefakt generiert wird und nicht transitiv.