Getting Started
Create a project from the template
We have created a template repository for your mission model, scheduling procedures, and constraint procedures here. If you don't already have a mission model project, you can just copy that template and follow the instructions. If you do, you can follow these steps to add a place for your procedures:
- Move your mission model code into a gradle subproject if it isn't already.
- Create a
scheduling
andconstraints
subproject. - Copy the
build.gradle
from thescheduling
andconstraints
subprojects of the mission model template repo. - You can now create procedures in a java package in your respective subprojects, as long as the package path ends in
procedures
. (i.e.src/main/java/myorg/mymission/procedures
)
Compiling
It is a two-part process to build your scheduling or constraint jars (we will show the scheduling jar creation below, but simply replace "scheduling" with "constraints" to compile your constraints).
- Run
./gradlew :scheduling:compileJava
(or any command that delegates to it, such as:scheduling:build
or a top-levelbuild
). - Run
./gradlew :scheduling:buildAllProcedureJars
. This produces the jar artifacts for each procedure.
There should now be one jar for each scheduling procedure, at scheduling/build/libs/<OriginalSourceCodeFileName>.jar
.
Creating a Goal
See some examples in the mission model template repo, or see the scheduling page in this section.
Creating a Constraint
See some examples in the mission model template repo, the Aerie mission model tutorial, or see the procedural constraints page of the docs.