example-project
IKE Example Project 31-SNAPSHOT
- Documentation Overview Software Bill of Materials
- Related Sites IKE Network IKE Platform (ike-parent) IKE Docs doc-example (sibling)
- Reports Project Information 7 Project Reports 2
example-project
A standalone reference project demonstrating an IKE consumer that ships both compiled Java code and rendered AsciiDoc documentation through a single mvn verify cycle. Inherits ike-parent from ike-platform and exercises the doc pipeline contributed by ike-docs.
| Coordinate | Value |
|---|---|
| Group ID | network.ike.examples |
| Artifact | example-project |
| Packaging | jar (plus AsciiDoc doc-pipeline activated by src/docs/asciidoc) |
| Parent | network.ike.platform:ike-parent |
| Java version | 25 |
Role in the IKE Ecosystem
This project is the canonical template for an IKE library that ships both code and docs. The companion project doc-example[1] is the template for a doc-only deliverable. Together they cover the two common shapes of IKE consumer:
| Template | When to copy from it |
|---|---|
example-project |
You’re shipping a JAR (a library, a CLI, a service) AND want rendered docs alongside it. Builds run a Java compile + test cycle plus the AsciiDoc → HTML/PDF pipeline. |
| doc-example[1] | You’re shipping a published document as the primary deliverable. No Java compile path; uses <packaging>pom</packaging> and ships the source as the adoc classifier (post-IKE-Network/ike-issues#321). |
For the workspace-aggregator template (one repo orchestrating multiple consumers via ws:* goals), see ike-example-ws[2].
Release Cascade Position
ike-tooling -> ike-docs -> ike-platform -> [example-project, doc-example] -> ike-example-ws
example-project releases after ike-platform (whose ike-parent this project consumes) and after ike-docs (whose ike-doc-maven-plugin is declared as a regular managed plugin in ike-parent via 43; the documentation pipeline activates through a profile when src/docs/asciidoc/ exists). Earlier revisions used the <extensions>true</extensions> mechanism to register a custom <packaging>ike-doc</packaging> type at literal versions; that machinery was retired in ike-issues#321[3] in favor of a classifier-canonical doc shape (<classifier>adoc</classifier><type>zip</type>).
Project Structure
example-project/
├── pom.xml (1)
├── src/
│ ├── main/java/ (2)
│ ├── test/java/ (3)
│ ├── docs/asciidoc/ (4)
│ │ ├── index.adoc (5)
│ │ └── chapters/
│ └── site/ (6)
│ ├── asciidoc/index.adoc
│ ├── resources/css/site.css
│ └── site.xml
└── target/
├── example-project-1-SNAPSHOT.jar (7)
└── generated-docs/
├── html/ (8)
├── pdf-prawn/ (9)
└── pdf-fop/ (10)
ike-parent — no Java/build config needed locally.maven-compiler-plugin configuration.maven-surefire-plugin from the parent.doc-pipeline profile in ike-parent — file-activated by the presence of this directory.chapters/.-Dike.pdf.prawn is passed).-Dike.pdf.fop is passed).Build Commands
# Compile + test + HTML docs (default):
mvn clean verify
# With Prawn PDF:
mvn clean verify -Dike.pdf.prawn
# With FOP PDF:
mvn clean verify -Dike.pdf.fop
# All renderers:
mvn clean verify -Dike.pdf.prawn -Dike.pdf.fop
# Generate this site (Maven Site Plugin):
mvn site
Inheritance Pattern
example-project inherits ike-parent directly:
<parent>
<groupId>network.ike.platform</groupId>
<artifactId>ike-parent</artifactId>
<version>6</version>
</parent>
After inheriting, the project gets — for free — Java 25 compilation, GPG signing via Bouncy Castle, JaCoCo coverage, the AsciiDoc documentation pipeline, and dependency-version management for the IKE ecosystem. ike-maven-plugin and ike-doc-maven-plugin are declared as ordinary managed plugins (no extensions=true, post-#321) and resolve via property indirection (185, 43).
The doc pipeline activates automatically when src/docs/asciidoc/ exists. No <plugins> block in this project’s POM is needed for documentation — the parent profile handles it.
What to Copy When Starting a New Project
When creating a new IKE library, copy the following from this template:
| File / Directory | Purpose |
|---|---|
pom.xml |
Parent declaration, group/artifact coordinates, single-segment version strategy. Adjust group ID and artifact name only. |
src/main/java/ |
Java sources. Replace with your own. |
src/test/java/ |
JUnit 5 test sources. Replace with your own. |
src/docs/asciidoc/ |
AsciiDoc documentation source. Edit index.adoc and add chapters/ includes as needed. |
src/site/ |
Maven Site Plugin source. Update site.xml (project name, repo URL, breadcrumb path) and asciidoc/index.adoc for your project. Keep the Forest-theme site.css and ike-logo.svg for visual consistency with the rest of the IKE ecosystem. |
Not published to Maven Central
example-project is a reference template, not a library. Its releases are tagged on GitHub and deployed to the IKE Nexus, but it is deliberately not published to Maven Central — nothing should ever declare a dependency on it. You consume this project by reading it and copying its structure into a project of your own. The IKE foundation (ike-base-parent, ike-tooling, ike-docs, ike-platform) is the part published to Central and meant to be inherited; see the IKE Network landing page[4] for the foundation/examples split.
Resources
| Resource | URL |
|---|---|
| Source repository | https://github.com/IKE-Network/example-project[5] |
| Cross-project issue tracker | https://github.com/IKE-Network/ike-issues[6] |
| IKE Network landing page | https://ike.network/[4] |
| IKE Platform (parent POM, BOM, workspace plugin) | https://ike.network/ike-platform/[7] |
| Sibling: doc-only template | https://ike.network/doc-example/[1] |
| Sibling: workspace-aggregator template | https://ike.network/ike-example-ws/[2] |