Unable to build MicroEJ project with veeport plugin from CLI or recognize as MicroEJ project in SDK IDE

Environment:

    MicroEJ SDK: MicroEJ-SDK-24.01 (/usr/local/MicroEJ/MicroEJ-SDK-24.01/rcp/)

    OS: Ubuntu 22.04

    JVM: java-17-openjdk-amd64 (with forge.microej.com cert imported)

    Gradle: wrapper, currently downgraded to 8.6

    Project: npa-rw612-frdm (cloned from internal repo)

Issue:

    Running ./gradlew --refresh-dependencies fails to resolve veeport Gradle plugin.

    Default veeport:1.0.0 in build fails:

Could not find com.microej.gradle:veeport:1.0.0

Updated to veeport:3.0.2 (latest visible in forge UI) — still fails:

    Could not find com.microej.gradle:veeport:3.0.2

    Checked both com.microej.gradle and com.microej.tools groupIds — neither resolves via https://forge.microej.com/maven/microej-sdk6-repository-release.

What we tried:

    Imported forge.microej.com SSL certificate into JVM truststore.

    Verified JVM (java-17) and Gradle (8.6) are compatible.

    Configured pluginManagement in settings.gradle.kts with the MicroEJ repository.

    Set buildscript repositories in build.gradle.kts to include the MicroEJ Maven repo.

    Tried both veeport:1.0.0 and veeport:3.0.2 in dependencies.

    Re-cloned project, cleared .gradle and ~/.gradle caches, restarted builds.

Observation:

    The MicroEJ forge UI shows veeport at version 3.0.2 but no corresponding Maven artifact resolves at the expected path.

    Installed MicroEJ SDK IDE and imported project — IDE opens the project but no clear indication of MicroEJ-specific builders or nature, and no Convert to MicroEJ Project option.

Questions:

    Is the veeport Gradle plugin not intended to be resolved from Maven?

    Is it expected to only work when building via the SDK IDE?

    Is there another repository or method to fetch the plugin artifacts for CLI builds?

Hello @Nilesh.patel,

The npa-rw612-frdm VEE Port was developed only for MicroEJ SDK 6. It won’t work for the
MicroEJ SDK Dist. 24.01 (which is MicroEJ SDK 5).

The first step to run the npa-rw612-frdm VEE Port is to install MicroEJ SDK 6 by following the installation documentation.

Once MicroEJ SDK 6 is installed, you will be able to import the npa-rw612-frdm VEE Port into your IDE. You can follow the i.MX RT1170 Evaluation Kit Getting Started and replace the i.MX RT1170 VEE Port repository by the npa-rw612-frdm VEE Port repository.

Regards,
Alexis

Hi Alex,

Thanks a lot for your clear explanation — it helped me understand the issue better.

I’m still fairly new to the MicroEJ ecosystem, and I couldn’t find the “MicroEJ SDK 6 Distribution” download link you mentioned.
I checked the [SDK 6 user guide], but unlike SDK 5, it doesn’t seem to point to a downloadable distribution package.

I also tried downloading from here:
JFrog
but realized that it’s just the Maven repository and not the SDK installation itself.

Could you please help me with the exact link or detailed steps on how I can properly set up the SDK 6 IDE?

Additionally, I’d appreciate your guidance on a few related questions:

  • I’d like to try out the “thermostat demo” — where can I find the example project/code for it?
  • Is there any way to use “MCUXpresso IDE” with MicroEJ for such demos or development?
  • If I need to merge MicroEJ with an existing “NXP SDK 25.06 example project”, what would be the recommended way to approach it?

Thanks in advance for your support — looking forward to your guidance to get started properly!

Best regards,
Nilesh

Hello @Nilesh.patel,

MicroEJ SDK 6 comes as a plugin that can be installed over IDEs

You first need to have an IDE compatible with MicroEJ SDK 6 installed. Then you have to install the MicroEJ SDK 6 plugin for your IDE. The process is described in the Install the IDE and Install the IDE Plugins sections.

The smart thermostat demo source code is available on the MicroEJ GitHub.

When you ask if there is a way to use “MCUXpresso IDE” with MicroEJ, are you talking about the MCUXpresso IDE based on Eclipse? If that is what you want, it’s probably possible to install the MicroEJ SDK 6 plugin for Eclipse. It was only tested for the standard Eclipse IDE distribution though.

Regards,
Alexis

Hi Alexis,

Thanks for clarifying — this makes more sense now.

So to summarize what I understood from your explanation:

  • SDK 6 is no longer a standalone IDE distribution like SDK 5, but rather a plugin installed over a compatible Eclipse IDE.

I initially tried setting up the project in VS Code, but encountered this error:

Plugin [id: 'com.microej.gradle.veeport', version: '1.0.0'] was not found in any of the following sources:

I’ve attached a screenshot for reference.

I also tried running it in MCUXpresso IDE (Eclipse-based), but it does not seem to work properly there either. Could you please try it yourself on MCUXpresso IDE and let me know if it’s possible?

I also had some confusion regarding the Configure Repositories step mentioned in the documentation. I wasn’t sure exactly what needs to be done there — could you please help explain that part in more detail?

Also, thanks for pointing me to the smart thermostat demo source on the MicroEJ GitHub — I’ll check it out..

Thanks again for your guidance — looking forward to your response.

Best regards,
Nilesh

Hi Alexis,

Thanks again for your guidance.

Following your suggestion, I also tried using a standard Eclipse IDE and attempted to install the MicroEJ SDK 6 plugin as per the documentation. However, I encountered this error during the installation:

“Unable to read repository at https://repository.microej.com/p2/eclipse/1.3.1/content.xml.
PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target”

I also re-tried setting it up in VS Code, but it’s still not working.
I’ve attached the relevant screenshots for your reference.

Additionally, I tried opening the project in IntelliJ IDEA, and it also failed with the following Gradle error:

Build file ‘/home/02_rt1170/nxpvee-mimxrt1170-prj/nxpvee-mimxrt1170-evk/vee-port/build.gradle.kts’ line: 1

Plugin [id: ‘com.microej.gradle.veeport’, version: ‘1.0.0’] was not found in any of the following sources:

  • Try:

Run with --stacktrace option to get the stack trace.
Run with --info or --debug option to get more log output.
Run with --scan to get full insights.
Get more help at https://help.gradle.org.

And if there are additional or alternate steps needed for setting up with VS Code or IntelliJ IDEA, please let me know as well.

Best regards,
Nilesh

Hi @Nilesh.patel,

I think your issues may be caused by your JVM that does not contain the Certificate Authority for repository.microej.com.

Can you send me the cacerts file from your JVM (usually in lib/security/cacerts in the Java installation folder) so I can check if the certificate is present? Or you can also try to install a more recent JVM. We advise to install the JDK from Adoptium.

Regards,
Alexis

Hi @Alex,

We were able to resolve the earlier certificate-related issue by importing the Sophos CA certificate into the JVM truststore properly. Thanks for pointing us in the right direction!

However, now we are facing another issue when building the project. Gradle is unable to resolve the com.microej.gradle.veeport plugin. The error we see is:

Plugin [id: ‘com.microej.gradle.veeport’, version: ‘1.0.0’] was not found in any of the following sources:

  • Gradle Core Plugins (plugin is not in ‘org.gradle’ namespace)
  • Included Builds (No included builds contain this plugin)
  • Plugin Repositories (could not resolve plugin artifact ‘com.microej.gradle.veeport:com.microej.gradle.veeport.gradle.plugin:1.0.0’)
    Searched in the following repositories:
    maven(https://forge.microej.com/maven/microej-sdk6-repository-release)
    Gradle Central Plugin Repository
    MavenRepo

We already have the following in our settings.gradle.kts:

pluginManagement {
repositories {
maven {
url = uri(“https://forge.microej.com/maven/microej-sdk6-repository-release”)
}
gradlePluginPortal()
mavenCentral()
}
}

And in vee-port/build.gradle.kts the plugin is declared as:

plugins {
id(“com.microej.gradle.veeport”) version “1.0.0”
}

Could you please:

  • Confirm if the version 1.0.0 is correct for SDK 6?
  • Suggest if there is another repository or updated configuration we should use?
  • If possible, could you also check the setup on your side and see if you face the same issue?

We’re blocked at this point despite the certificate issue being fixed, and would really appreciate your guidance on how to proceed.

Thanks in advance!

Best regards,
Nilesh

Hello @Nilesh.patel,

I confirm that the 1.0.0 version is correct.

We advise to configure the gradle repositories as described in the documentation. It configures the repositories needed by MICROEJ for all the gradle projects.

If you still want to configure the repositories only for your project as you already did in your settings.gradle.kts, you can take a look at the microej.init.gradle.kts file from the previous documentation. It contains all the repositories needed by MICROEJ and you can add them to your settings.gradle.kts.

Regards,
Alexis

Hi Alexis,

We are able to run applications successfully on the simulator, but when attempting runOnDevice, the build fails with the error:
[ERROR] Invalid license check (No license found).

We followed the steps mentioned in the official documentation:

We generated and downloaded the license key, and placed the license.xml in the path:
~/.microej/licenses
We also added the following entry in ~/.gradle/gradle.properties:

systemProp.microej.licenses.dir=/home/nilesh/.microej/licenses

Despite this, we are still facing the license error on runOnDevice. Could you please help us identify what’s missing?

Best regards,
Nilesh

Hello @Nilesh.patel,

The documentation link you sent me is for SDK5.

Here is the link for the SDK6 licenses documentation: Licenses — MicroEJ Documentation.

Regards,
Alexis

Hi Alexis,

I’ve been following the SDK6 licensing instructions from this documentation:
Licenses — MicroEJ Documentation

I placed the license.xml file under:

~/.microej/licenses/license.xml

and also set the Gradle property in ~/.gradle/gradle.properties:

systemProp.microej.licenses.dir=/home/nilesh/.microej/licenses

Despite that, when I try to run the project on device (./gradlew runOnDevice), I’m still getting the error:

[ERROR] Invalid license check (No license found)

To troubleshoot, I tried the “Check Activation” step using:

java -Djava.library.path=resources/os/Linux64 -jar licenseManager/licenseManagerKeyHardware.jar /home/nilesh/.microej/licenses

However, the JAR doesn’t contain a Main-Class and none of the classes have a main() method either. So the license check tool itself doesn’t run.

Could you please confirm:

Whether this debug tool is supposed to be runnable standalone?

Or if there’s an updated or alternate method to verify the license is valid and being picked up in SDK6?

Let me know if I should provide any additional logs or info.

Hi Alex,
Thanks a lot for your support. The setup is now working fine and I was able to build and run the HelloWorld app successfully on the board. Appreciate your guidance throughout.

Best regards,
Nilesh

Hi @Nilesh.patel,

You’re welcome.

Have a nice day,
Alexis

Hi Alex,

I’m currently working on integrating the Demo-SmartThermostat with the FRDM-RW612 board and need clarification regarding the appropriate VEE Port.

Could you please confirm if there is a published artifact for RW612, similar to com.nxp.vee.mimxrt1170:vee-port:3.0.0?
If not, is the npa-vee-rw612 GitHub repository the correct VEE Port to use for FRDM-RW612?
What we’ve tried so far:

  1. Cloned and successfully built the npa-vee-rw612 project locally.

  2. Referenced the VEE Port via includeBuild(...) in settings.gradle.kts.
    
  3. Used microejVee(project(":vee-port")) in build.gradle.kts for Smart Thermostat.
    
  4. The application builds successfully using ./gradlew build.
    

Current Issues:

When running :runOnDevice, we encounter the following error:

Could not resolve all dependencies for configuration ':smart-thermostat:microejVeeClasspath'.
> Could not find :vee-port:.
  Required by: project :smart-thermostat

Additionally, by default the build uses LinkServer for flashing, but we would like to switch to J-Link.
Could you please guide us on how to configure the build system for J-Link usage?

Worth mentioning:
We’re able to build and run the simpleGFX app on FRDM-RW612 using the same VEE Port without issues.
However, we’re unable to get Smart Thermostat to run on the same setup.

Would appreciate your guidance on resolving the dependency issue and switching to J-Link for flashing.

Hi @Nilesh.patel,

We do not provide an artifact for the RW612 VEE Port so you have to add it from the local source as you are doing.

Your includeBuild declaration is correct in the settings.gradle.kts file.

In the build.gradle.kts file you have to declare the VEE Port as follow: microejVee("<group>:<module>:<version>"). So for the RW612 VEE Port it should be:

microejVee("com.nxp.vee.frdmrw612:npa-rw612-frdm:1.0.0")

Regards,
Alexis

Hi Alex,

Thanks for your earlier suggestion regarding the microejVee(“com.nxp.vee.frdmrw612:npa-rw612-frdm:1.0.0”) dependency configuration.

Here’s a detailed summary of what we’ve tried:
Phase 1 – Attempt using microejVee(“com.nxp.vee.frdmrw612:npa-rw612-frdm:1.0.0”):

We added the VEE port dependency as instructed in the build.gradle.kts file of the Demo-SmartThermostat project.

We retained the includeBuild("path/to/vee-port") statement in settings.gradle.kts as confirmed to be correct.

On attempting to run ./gradlew :smart-thermostat:runOnDevice, we encountered:

Could not resolve com.nxp.vee.frdmrw612:npa-rw612-frdm:1.0.0.
A dependency was declared on configuration 'default' which is not declared in the descriptor for project :npa-rw612-frdm.

We then tried publishing the VEE port locally using publishToMavenLocal, but hit an error related to MicroEJ Core IP sharing due to microejruntime.a, which appears restricted by SDK EULA.

Phase 2 – Switching to microejVee(project(“:vee-port”)):

We reverted to the approach used in simpleGFX, linking directly via microejVee(project(":vee-port")).

Added the smartThermostat app module inside the working npa-rw612-frdm structure under apps/.

Updated settings.gradle.kts to include the apps:smartThermostat module and verified the correct project structure.

The build for smartThermostat now succeeds using ./gradlew build.

However, the runOnDevice task is not generated, despite using the same plugin setup and flags as the working simpleGFX module.

Current Blocker:

Task :apps:smartThermostat:runOnDevice is missing.

No runtime execution is possible even though build completes.

We’ve tried cleaning, refreshing dependencies, hardcoding plugin versions — no luck so far.

Given that simpleGFX works fine with the same environment and board, we suspect a configuration mismatch or missing step in integrating the VEE Port with the Smart Thermostat app.

Request:
Could you please share the exact steps or known working configuration to build and run Demo-SmartThermostat on the FRDM-RW612 using npa-vee-rw612 as the VEE Port?

We’d really appreciate a working example or guidance here.

Best regards,
Nilesh Patel

Hi,

The module name of the VEE Port is actually vee-port so the VEE Port declaration should actually be microejVee(“com.nxp.vee.frdmrw612:vee-port:1.0.0”).

Also make sure that the includeBuild in the settings.gradle.kts points to the VEE Port’s root directory.

However you will not be able to run the smart thermostat demo because it needs the MicroVG library (Vector Graphics library) and the RW612 does not provide an implementation of this library.

Also, this VEE Port uses a partial buffer for its UI buffer. If you want to run your own application with UI, you have to make sure to use the PartialRenderPolicy from npa-vee-rw612/apps/simpleGFX/src/main/java/com/microej/partial/support at main · MicroEJ/npa-vee-rw612 · GitHub in your Desktop. More information about the Partial Buffers can be found here.

Regards,
Alexis

Hi Alexis,

Thanks for the clarification.

However, we noticed that the following official MicroEJ link showcases the Smart Thermostat demo running on the FRDM-RW612:

Supported Hardware: NXP FRDM-RW612 - MicroEJ Developer

Given this, could you please confirm whether it’s actually supported on RW612, or if that demo was run with specific modifications (e.g., without MicroVG or using an alternate setup)?

We’d appreciate more details so we can align our implementation accordingly.

Best regards,
Nilesh

Hello Nilesh,

Ok this is another demo than the first link I sent.

I’m not sure this thermostat demo for the RW613 sources are available publicly, I will check that.

Are you specifically interested in a thermostat demo? If you just want an example of Application with an UI you can check the Example-Java-Widget.

Regards,
Alexis