diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index eb95af8..330d83c 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -52,16 +52,6 @@ jobs:
- name: Build with Maven
run: mvn -B package
-
- - name: Create Complete Package
- run: |
- mkdir -p package
- cp target/GhydraMCP-*.zip package/
- cp bridge_mcp_hydra.py package/
- cd package
- zip -r GhydraMCP-Complete-${{ steps.set_version.outputs.BUILD_VERSION }}.zip *
- mv GhydraMCP-Complete-${{ steps.set_version.outputs.BUILD_VERSION }}.zip ..
- cd ..
- name: Upload nightly artifacts
if: github.ref_type != 'tag'
@@ -71,7 +61,7 @@ jobs:
path: |
target/GhydraMCP-*.zip
bridge_mcp_hydra.py
- GhydraMCP-Complete-${{ steps.set_version.outputs.BUILD_VERSION }}.zip
+ target/GhydraMCP-Complete-*.zip
- name: Generate Release Notes
if: github.ref_type == 'tag'
@@ -113,6 +103,6 @@ jobs:
files: |
target/GhydraMCP-*.zip
bridge_mcp_hydra.py
- GhydraMCP-Complete-${{ steps.set_version.outputs.BUILD_VERSION }}.zip
+ target/GhydraMCP-Complete-*.zip
draft: false
prerelease: false
\ No newline at end of file
diff --git a/README.md b/README.md
index e575037..0edfe69 100644
--- a/README.md
+++ b/README.md
@@ -149,12 +149,35 @@ client.use_tool("ghydra", "register_instance", {"port": 8193})
3. Command: `python /ABSOLUTE_PATH_TO/bridge_mcp_hydra.py`
# Building from Source
-Build with Maven by running:
-`mvn clean package assembly:single`
+You can build different artifacts with Maven:
-The generated zip file includes the built Ghidra plugin and its resources. These files are required for Ghidra to recognize the new extension.
+## Build Everything (Default)
+Build both the Ghidra plugin and the complete package:
+```
+mvn clean package
+```
+
+This creates:
+- `target/GhydraMCP-[version].zip` - The Ghidra plugin only
+- `target/GhydraMCP-Complete-[version].zip` - Complete package with plugin and bridge script
+
+## Build Ghidra Plugin Only
+If you only need the Ghidra plugin:
+
+```
+mvn clean package -P plugin-only
+```
+
+## Build Complete Package Only
+If you only need the combined package:
+
+```
+mvn clean package -P complete-only
+```
+
+The Ghidra plugin includes these files required for Ghidra to recognize the extension:
- lib/GhydraMCP.jar
-- extensions.properties
+- extension.properties
- Module.manifest
diff --git a/pom.xml b/pom.xml
index 1fdadc5..aa8a9cb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,101 +4,108 @@
4.0.0
eu.starsong.ghidra
- GhydraMCP
+ GhydraMCP
jar
1.1
GhydraMCP
https://github.com/teal-bauer/GhydraMCP
+
+
+ UTF-8
+ UTF-8
+ ${project.basedir}/lib
+ true
+ true
+
-
+
ghidra
Generic
11.3.1
system
- ${project.basedir}/lib/Generic.jar
+ ${ghidra.jar.location}/Generic.jar
ghidra
SoftwareModeling
11.3.1
system
- ${project.basedir}/lib/SoftwareModeling.jar
+ ${ghidra.jar.location}/SoftwareModeling.jar
ghidra
Project
11.3.1
system
- ${project.basedir}/lib/Project.jar
+ ${ghidra.jar.location}/Project.jar
ghidra
Docking
11.3.1
system
- ${project.basedir}/lib/Docking.jar
+ ${ghidra.jar.location}/Docking.jar
ghidra
Decompiler
11.3.1
system
- ${project.basedir}/lib/Decompiler.jar
+ ${ghidra.jar.location}/Decompiler.jar
ghidra
Utility
11.3.1
system
- ${project.basedir}/lib/Utility.jar
+ ${ghidra.jar.location}/Utility.jar
ghidra
Base
11.3.1
system
- ${project.basedir}/lib/Base.jar
+ ${ghidra.jar.location}/Base.jar
-
+
junit
junit
- 3.8.1
+ 4.13.2
test
-
-
-
-
- org.apache.maven.plugins
- maven-compiler-plugin
- 3.8.1
-
- 11
- 11
-
-
-
-
-
- maven-jar-plugin
- 3.2.2
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.8.1
+
+ 21
+ 21
+
+ -Xlint:-path
+
+
+
+
+
+ maven-jar-plugin
+ 3.2.2
src/main/resources/META-INF/MANIFEST.MF
-
GhydraMCP
-
**/App.class
-
${project.build.directory}
@@ -108,36 +115,48 @@
org.apache.maven.plugins
maven-assembly-plugin
3.3.0
-
-
-
- src/assembly/ghidra-extension.xml
-
-
-
- GhydraMCP-${project.version}
-
-
- false
-
-
+
- make-assembly
+ plugin-assembly
package
single
+
+
+ src/assembly/ghidra-extension.xml
+
+ GhydraMCP-${project.version}
+ false
+
+
+
+
+
+ complete-package
+ package
+
+ single
+
+
+
+ src/assembly/complete-package.xml
+
+ GhydraMCP-Complete-${project.version}
+ false
+
-
+
org.apache.maven.plugins
maven-dependency-plugin
- 3.1.2
+ 3.6.1
+
copy-dependencies
prepare-package
@@ -149,8 +168,68 @@
runtime
+
+
+
+ validate-system-dependencies
+ validate
+
+ analyze-only
+
+
+ false
+
+ ghidra:Docking
+
+
+ ghidra:*
+
+
+
+
+
+
+
+ plugin-only
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+ 3.3.0
+
+
+ complete-package
+ none
+
+
+
+
+
+
+
+
+
+ complete-only
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+ 3.3.0
+
+
+ plugin-assembly
+ none
+
+
+
+
+
+
+
diff --git a/src/assembly/complete-package.xml b/src/assembly/complete-package.xml
new file mode 100644
index 0000000..a5be35a
--- /dev/null
+++ b/src/assembly/complete-package.xml
@@ -0,0 +1,49 @@
+
+
+
+ complete-package
+
+
+
+ zip
+
+
+
+ false
+
+
+
+
+ ${project.basedir}
+
+ bridge_mcp_hydra.py
+ README.md
+ LICENSE
+
+
+
+
+
+
+ ${project.build.directory}
+
+ GhydraMCP.jar
+
+ GhydraMCP/lib
+
+
+
+
+ src/main/resources
+
+ extension.properties
+ Module.manifest
+
+ GhydraMCP
+
+
+
\ No newline at end of file