The S-expression version looks so much more pleasant:
(proj (name "My Biz CLI")
(url "http://github.com/mybiz/mybizctl")
(model-version "4.0.0")
(group-id com.mybiz)
(artifact-id mybizctl)
(version "1.0.0")
(packaging jar)
(deps
(dep (group-id junit)
(artifact-id junit)
(version "5.0.1")
(scope test))))I probably should have omitted alternatives and comments in my example - would have come to the same length then and just as easy to read. Did so below and even more pleasant to read - esp for folks already used to HTML.
Do S-expressions have a schema standard ?
<proj
name="My Biz CLI"
url="http://github.com/mybiz/mybizctl"
groupId="com.mybiz"
artifactId="mybizctl"
version="1.0.0"
modelVersion="4.0.0">
<deps>
<dep groupId="junit" artifactId="junit" version="5.0.1" scope="test" />
</deps>
</proj>
With a nice XSD, the below could be typed with full autocomplete and tab-next-placeholder support for element and attribute names in both neovim/vscode/ intellij.
The above declares a project CLI tool with proj metadata and a defined coordinate producing a jar file with 1 compile time dependency and 1 test dependency.