Building from the Command Line Interface (CLI)
After you’ve made code changes to a project, you should build it.
You don’t need to build the whole of a SpatialOS project at the same time. What you build depends on what changes you’ve made to it:
If you’ve changed the schema
Any time you change the schema (for example, add or change a component), you need to regenerate the generated code, and fix code references.
1. Build schema changes
Generate code from the schema:
- To generate code for all workers to use, run the
command
spatial worker codegen
To generate code for just one worker type, run the command
spatial worker codegen <worker type>
This runs the ‘codegen’ task for the worker. See build configuration for details.
- To generate code for all workers to use, run the
command
Fix any code references that are broken by the schema changes.
Run
spatial worker build <worker type>
for any relevant workers.
You can then use your IDE to modify your code that uses the generated code.
2. Migrate the initial snapshot
If you change the schema, you’ll need to migrate your initial snapshot to the new schema, or generate a new one.
You can manipulate the snapshot using the Worker SDK. See the docs for C++, C#, or Java for details.
If you’ve changed worker code
1. Build worker code
When you’ve made a change to the code of your worker, run
spatial worker build <worker type>
.
This runs the ‘build’ task for the worker, which normally puts the resulting assets within build/assembly
.
See build configuration for details.
2. Update the initial snapshot
You must update your initial snapshot (or generate a new one) if you make any changes that affect what’s in the snapshot. This includes (but isn’t limited to):
- adding or removing entities in the initial state (by changing the code which adds them)
- changing the number of entities in the initial state (by changing the code which adds them)
- changing the template (used to spawn an entity) of any entity that’s in the initial snapshot, including
- adding components to the entity
- removing components from the entity
To update the initial snapshot, use the Worker SDK. See the docs for C++, C#, or Java for details.
Cleaning
To clean the results of code generation and build, run
spatial worker clean <worker type>
](/reference/13.8/shared/spatial-cli/spatial-worker-clean).
This runs the ‘clean’ task for the worker.
See build configuration for details.
To clean the whole project, run spatial worker clean
.
This also removes the build
directory at the root of your project.
Building workers offline
You can use spatial worker build
to build workers offline, so you can iterate on local projects without an internet connection. For more information, see Using the SpatialOS CLI offline for local projects.