Building a project from command line

I’m looking to create a script to build some projects, rather than building each module in the SDK individually. How do I get a project to build via command line?

Thanks

Hi @makin,

A tool is available, it is called MicroEJ CI Bundle. It allows the build with a command line and the integration to existing build servers such as Jenkins. It is available with production licenses so contact your customer care representative or your sales representative if you do not have a license.

Gaëtan for MicroEJ

Hi @gaetan.harel,

Thanks for the response, I’m sorry, I should have been more specific! We do have the license and CI Bundle. Looking now I see instruction for a local build, however I am getting several issues. I believe it’s in part because we are using an offline repository. I’ve tried setting the environment variables to this new repository for our project, but still no luck.

The main problem I am getting is dependency issues. These projects will build fine in the SDK, but fail with the “build module local” tool. The workaround we have right now is to add the required dependencies from different offline repositories, and we can’t think of a better solution.

The other problem we are encountering is how we would go about running a program with the “Run as/Run configuration” option from the command line. Any support on that would be appreciated.

Thanks,

Mathew

Hi @makin,

You have multiple offline repositories ? Your ivysetting can link multiple offline repository.

What dependencies are you missing?

You can use the firmware-SingleApp build type that will generate a player and build the application as well.

Regards,

Hello @pierre.rivron

There are two right now that I can’t resolve. In this wadapps build, I’m able to build the AddonProcessor without issue through the command line, but when trying to build the next step, AppFramework, I get these issues:

|[ivy:resolve] ||::          UNRESOLVED DEPENDENCIES         ::|
|[ivy:resolve] ||::::::::::::::::::::::::::::::::::::::::::::::|
|[ivy:resolve] ||:: ej.library.wadapps#event;1.0.0: not found|
|[ivy:resolve] ||:: ep.tool.addon#*project*-processor;1.0.0: not found|
|[ivy:resolve] ||::::::::::::::::::::::::::::::::::::::::::::::|

I am confused, because I see both of these in the place that it is looking in the local repositories.

I might be misunderstanding you, but our build type is set as:

<ea:build organisation="com.is2t.easyant.buildtypes" module="build-firmware-singleapp" revision="1.+">

Otherwise I am not familiar with what you mean. What I need to do is have this module build from the command line as though I ran it with a specific run configuration to generate a ‘.o’ file. The end goal is to have everything set up with Jenkins to build automatically.

Thanks again,

Mathew

Ok I think the issue is that you are trying to build a MicroEJ 5 project with the CI bundle which has been designed for MicroEJ 4. I will update it and come back to you asap.

You have the correct build type. It can be adapted to use a localy build platform (WIP-build-firmware-singleapp in the CI bundle does this). In this case it will generate a microejapp.o in a zip file.

If you have a full binary platform, then you will be able to generate an elf file (.out) that you could then flash.

Pierre,