def ';' KEY (';' STRING)?
Macro
Summary
The def macro looks up a property by key and returns its value, or returns a default value if the property is not set. The default is an empty string if not specified.
Syntax
${def;<key>[;<default>]}
Parameters
key- The property name to look updefault(optional) - Value to return if property not set (default: empty string)
Behavior
- Looks up property by key
- Returns property value if set
- Returns default if property not set
- Default is empty string if not specified
- Handles undefined properties gracefully
Examples
Get property with default:
${def;version;1.0.0}
# Returns property value or "1.0.0" if not set
Empty default:
${def;optional.setting}
# Returns property value or "" if not set
Use in paths:
output.dir=${def;custom.dir;target}
Conditional with default:
${if;${def;debug.mode;false};debug-on;debug-off}
Use Cases
- Providing default values
- Optional properties
- Configuration fallbacks
- Safe property access
- Avoiding undefined property errors
Notes
- Safer than direct property reference
- Default prevents empty/undefined issues
- Unlike
${key}, returns default instead of literal - Empty string is valid default
- See also:
${get}for list element access - See also:
${if}for conditional defaults
See test cases in MacroTestsForDocsExamples.java
