diff --git a/.github/workflows/dependency-update.yml b/.github/workflows/dependency-update.yml
index bb45d3e65..4090fce44 100644
--- a/.github/workflows/dependency-update.yml
+++ b/.github/workflows/dependency-update.yml
@@ -14,6 +14,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
+
- name: Submit Dependency Snapshot
uses: advanced-security/maven-dependency-submission-action@v3
diff --git a/.github/workflows/pull-request-check.yml b/.github/workflows/pull-request-check.yml
index f8a3312fb..e037f8f4c 100644
--- a/.github/workflows/pull-request-check.yml
+++ b/.github/workflows/pull-request-check.yml
@@ -69,21 +69,24 @@ jobs:
java --version
export MAVEN_OPTS="-Xmx4096m"
export JAVA_TOOL_OPTIONS="-Dfile.encoding=UTF8"
+ # Actual build of core SDK
mvn -B -pl '!org.eclipse.esmf:samm-cli' clean install -Pnative -Dmaven.wagon.httpconnectionManager.ttlSeconds=60
+ # Build samm-cli executable jar and run integration tests
+ unset JAVA_TOOL_OPTIONS
+ mvn -B -pl tools/samm-cli clean verify -Dmaven.wagon.httpconnectionManager.ttlSeconds=60
shell: bash
- name: Build native image
if: matrix.os != 'macos-13'
run: |
export MAVEN_OPTS="-Xmx4096m"
- mvn -B -pl tools/samm-cli clean verify -Pnative -Dmaven.wagon.httpconnectionManager.ttlSeconds=60
+ # Build native binary and run integration tests
+ mvn -B -pl tools/samm-cli verify -Pnative -Dmaven.wagon.httpconnectionManager.ttlSeconds=60
shell: bash
- name: Build native image (Mac)
if: matrix.os == 'macos-13'
run: |
- export MAVEN_OPTS="-Xmx4096m"
- mvn -B -pl tools/samm-cli clean verify -Dmaven.wagon.httpconnectionManager.ttlSeconds=60
bundle="samm-bundle-DEV-SNAPSHOT-$(date +%s)"
mkdir ${bundle}
curl -Lo jre.tar.gz https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.6%2B7/OpenJDK21U-jre_x64_mac_hotspot_21.0.6_7.tar.gz
diff --git a/.github/workflows/release-workflow.yml b/.github/workflows/release-workflow.yml
index 7b120954c..e18de3180 100644
--- a/.github/workflows/release-workflow.yml
+++ b/.github/workflows/release-workflow.yml
@@ -104,9 +104,11 @@ jobs:
# Actual build of core SDK
mvn -B -pl '!org.eclipse.esmf:samm-cli' clean deploy -Pnative -Dmaven.wagon.httpconnectionManager.ttlSeconds=60 -DaltDeploymentRepository=local::default::file://nexus-staging -Psign
- # Build of CLI
+ # Build samm-cli executable jar and run integration tests
unset JAVA_TOOL_OPTIONS
- mvn -B -pl tools/samm-cli clean verify -Pnative -Dmaven.wagon.httpconnectionManager.ttlSeconds=60
+ mvn -B -pl tools/samm-cli clean verify -Dmaven.wagon.httpconnectionManager.ttlSeconds=60
+ # Build native binary and run integration tests
+ mvn -B -pl tools/samm-cli verify -Pnative -Dmaven.wagon.httpconnectionManager.ttlSeconds=60
# Create .tar.gz of samm-cli
pushd tools/samm-cli/target
@@ -178,7 +180,7 @@ jobs:
mvn versions:commit
# Actual build of core SDK
mvn -B -pl '!org.eclipse.esmf:samm-cli' clean install -Pnative -Dmaven.wagon.httpconnectionManager.ttlSeconds=60
- # Build of CLI
+ # Build samm-cli executable jar and run integration tests
unset JAVA_TOOL_OPTIONS
mvn -B -pl tools/samm-cli clean verify -Dmaven.wagon.httpconnectionManager.ttlSeconds=60
shell: bash
@@ -266,9 +268,11 @@ jobs:
# Actual build of core SDK
mvn -B -pl '!org.eclipse.esmf:samm-cli' clean install -Pnative -Dmaven.wagon.httpconnectionManager.ttlSeconds=60
- # Build of CLI
+ # Build samm-cli executable jar and run integration tests
unset JAVA_TOOL_OPTIONS
- mvn -B -pl tools/samm-cli clean verify -Pnative -Dmaven.wagon.httpconnectionManager.ttlSeconds=60
+ mvn -B -pl tools/samm-cli clean verify -Dmaven.wagon.httpconnectionManager.ttlSeconds=60
+ # Build native binary and run integration tests
+ mvn -B -pl tools/samm-cli verify -Pnative -Dmaven.wagon.httpconnectionManager.ttlSeconds=60
shell: bash
- name: Upload Windows binary
diff --git a/README.md b/README.md
index 1b3e25754..41077ba20 100644
--- a/README.md
+++ b/README.md
@@ -58,14 +58,13 @@ Building the SDK requires a Java 21-compatible [GraalVM JDK](https://www.graalvm
To build the SDK core components, run the following command:
```bash
-mvn -pl '!org.eclipse.esmf:samm-cli' clean install
+mvn -pl '!org.eclipse.esmf:samm-cli' clean install -Pnative
```
To also build SDK core components and the CLI tool, run the above command, followed by:
```bash
-cd tools/samm-cli
-mvn -B clean verify
-mvn -B verify -Pnative
+mvn -pl org.eclipse.esmf:samm-cli clean verify
+mvn -pl org.eclipse.esmf:samm-cli verify -Pnative
```
We are always looking forward to your contributions. For more details on how to contribute just take
diff --git a/tools/samm-cli/pom.xml b/tools/samm-cli/pom.xml
index 6ff7889f0..d440f733a 100644
--- a/tools/samm-cli/pom.xml
+++ b/tools/samm-cli/pom.xml
@@ -32,7 +32,7 @@
org.eclipse.esmf.SammCli
samm
false
- true
+ false
false
false
@@ -203,6 +203,106 @@
+
+
+ org.apache.maven.plugins
+ maven-shade-plugin
+
+
+ default-shade
+ package
+
+ shade
+
+
+ false
+ false
+ ${skip.maven.shade}
+
+
+
+ ${main-class}
+
+
+
+
+
+
+
+ javax.annotation:jsr250-api
+
+
+
+
+
+ *:*
+
+ module-info.class
+ META-INF/*
+ META-INF/sisu/javax.inject.Named
+ META-INF/plexus/components.xml
+ META-INF.versions*/**
+ META-INF/versions*/**
+ META-INF/maven/**
+ plugin.xml
+ about.html
+
+
+
+
+ ${project.groupId}:${project.artifactId}
+ false
+
+ **
+ META-INF/**
+ git.properties
+
+
+
+ org/eclipse/esmf/buildtime/**
+
+
+
+
+ xml-apis:xml-apis
+
+ license/**
+
+
+
+
+ org.apache.xmlgraphics:batik-svgrasterizer
+
+ org/apache/batik/apps/rasterizer/resources/rasterizer.policy
+
+
+
+
+ org.jboss.forge.roaster:roaster-jdt
+
+ META-INF/native-image/**
+
+
+
+
+ org.eclipse.esmf:esmf-aspect-meta-model-java
+
+ **
+
+
+
+
+ jakarta.activation:jakarta.activation-api
+
+ **
+
+
+
+
+
+
+
+
pl.project13.maven
git-commit-id-plugin
@@ -385,11 +485,24 @@
native
true
false
+ true
false
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+
+
+ default-jar
+ none
+
+
+
+
org.graalvm.buildtools
native-maven-plugin
@@ -400,7 +513,7 @@
compile
- package
+ prepare-package