fix: ensure extension zip included in complete package
Some checks failed
Build Ghidra Plugin / build (push) Has been cancelled

Moved plugin assembly execution to prepare-package phase to ensure
the extension zip artifact is created before the package phase.

Added maven-resources-plugin execution (copy-plugin-zip) to the
package phase to copy the generated extension zip into a reliable
'target/staging' directory.

Updated complete-package.xml assembly descriptor to use a fileSet
referencing 'target/staging' instead of relying on dependencySets
or potentially unstable property expansion for artifact inclusion.

This resolves the issue where the complete package artifact was
missing the Ghidra extension zip.
This commit is contained in:
Teal Bauer 2025-04-07 22:50:26 +02:00
parent 908d0decfe
commit 3a1772a3c9
2 changed files with 35 additions and 6 deletions

32
pom.xml
View File

@ -205,7 +205,7 @@
<!-- Default execution for the plugin only -->
<execution>
<id>plugin-assembly</id>
<phase>package</phase>
<phase>prepare-package</phase> <!-- Run earlier to ensure zip exists for copy -->
<goals>
<goal>single</goal>
</goals>
@ -215,6 +215,9 @@
</descriptors>
<finalName>GhydraMCP-${git.commit.id.abbrev}-${maven.build.timestamp}</finalName>
<appendAssemblyId>false</appendAssemblyId>
<!-- Don't attach artifact, we will copy it manually -->
<!-- <attach>true</attach> -->
<!-- <classifier>ghidra-extension</classifier> -->
</configuration>
</execution>
@ -236,6 +239,33 @@
</executions>
</plugin>
<!-- Copy the generated plugin zip to a staging area -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.3.1</version>
<executions>
<execution>
<id>copy-plugin-zip</id>
<phase>package</phase> <!-- Run after plugin-assembly -->
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/staging</outputDirectory>
<resources>
<resource>
<directory>${project.build.directory}</directory>
<includes>
<include>GhydraMCP-${git.commit.id.abbrev}-${maven.build.timestamp}.zip</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<!-- Copy dependencies and validate system paths -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>

View File

@ -22,12 +22,11 @@
<outputDirectory></outputDirectory>
</fileSet>
<!-- Include pre-built Ghidra plugin zip -->
<fileSet>
<directory>${project.build.directory}</directory>
<!-- Include the Ghidra plugin zip copied by maven-resources-plugin -->
<fileSet>
<directory>${project.build.directory}/staging</directory>
<includes>
<!-- Use properties consistent with pom.xml finalName -->
<include>GhydraMCP-${git.commit.id.abbrev}-${maven.build.timestamp}.zip</include>
<include>GhydraMCP-*.zip</include>
</includes>
<outputDirectory></outputDirectory>
</fileSet>