machai
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>org.machanism.machai</groupId>
<artifactId>machai</artifactId>
<version>1.1.10</version>
</dependency><?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.machanism.machai</groupId>
<artifactId>machai</artifactId>
<version>1.1.10</version>
<packaging>pom</packaging>
<name>Machai Project</name>
<!-- @guidance: Summarize the `src/site/markdown/index.md` introduction
section and put this conten to the `description` tag. -->
<description>Machai is a multi-module toolkit for GenAI-enabled developer
automation. It provides Java libraries and Maven tooling that unify
access to multiple GenAI providers, generate and consume Bindex metadata
for library discovery and reuse, and automate repository-scale
documentation updates from embedded guidance using Ghostwriter.</description>
<url>https://machai.machanism.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.version>3.8.1</maven.version>
<stagingDirectory>${env.MACHAI_SITE}</stagingDirectory>
<maven.javadoc.skip>true</maven.javadoc.skip>
<gw.acts>
https://raw.githubusercontent.com/machanism-org/machai/refs/heads/main/acts</gw.acts>
<gw.model>CodeMie:gpt-5.4-2026-03-05</gw.model>
<bindex.model>${gw.model}</bindex.model>
<genai.serverId>CodeMie</genai.serverId>
<sonar.coverage.jacoco.xmlReportPaths>target/site/jacoco/jacoco.xml</sonar.coverage.jacoco.xmlReportPaths>
<jackson.version>2.18.2</jackson.version>
<maven.shared.utils.version>3.4.2</maven.shared.utils.version>
<guava.version>33.5.0-jre</guava.version>
<guice.version>5.1.0</guice.version>
<error.prone.annotations.version>2.33.0</error.prone.annotations.version>
<bytebuddy.version>1.14.12</bytebuddy.version>
<kotlin.version>1.9.10</kotlin.version>
<plexus.utils.version>3.6.0</plexus.utils.version>
<sisu.version>0.9.0.M4</sisu.version>
</properties>
<profiles>
<profile>
<id>release</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.2.1</version>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.11.2</version>
<configuration>
<doclint>none</doclint>
<show>package</show>
<useStandardDocletOptions>true</useStandardDocletOptions>
<bottom><![CDATA[©2025-2026 Machanism.org. All Rights Reserved.]]></bottom>
<header><![CDATA[<h1><a href="${project.url}">${project.name}<a></h1>]]></header>
</configuration>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>1.5</version>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<distributionManagement>
<repository>
<id>ossrh</id>
<url>
https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
</repository>
</distributionManagement>
</profile>
<profile>
<id>pack</id>
<build>
<pluginManagement>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<id>build-artifact</id>
<phase>install</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<finalName>gw</finalName>
<appendAssemblyId>false</appendAssemblyId>
<descriptors>
<descriptor>
src/assembly/assembly-jar.xml</descriptor>
</descriptors>
<outputDirectory>
${project.build.directory}</outputDirectory>
<archive>
<manifest>
<mainClass>
org.machanism.machai.gw.processor.Ghostwriter</mainClass>
</manifest>
<manifestEntries>
<Class-Path>
${plugins-class-path}</Class-Path>
<Implementation-Version>
${project.version}</Implementation-Version>
</manifestEntries>
</archive>
</configuration>
</execution>
<execution>
<id>delivery-pack</id>
<phase>install</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<outputDirectory>
${env.MACHANISM_PACK_DIR}/machai/${artifactId}</outputDirectory>
<finalName>gw</finalName>
<appendAssemblyId>false</appendAssemblyId>
<descriptors>
<descriptor>
src/assembly/assembly.xml</descriptor>
</descriptors>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<id>copy-to-releases</id>
<phase>install</phase>
<configuration>
<target>
<copy
file="${env.MACHANISM_PACK_DIR}/machai/${artifactId}/gw.zip"
tofile="${env.MACHANISM_PACK_DIR}/machai/${artifactId}/releases/gw-${project.version}.zip"
overwrite="true" />
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
</build>
</profile>
</profiles>
<modules>
<module>project-layout</module>
<module>genai-client</module>
<module>bindex-core</module>
<module>ghostwriter</module>
<module>gw-maven-plugin</module>
</modules>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.20.0</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>2.0.17</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>${guava.version}</version>
</dependency>
<dependency>
<groupId>com.google.inject</groupId>
<artifactId>guice</artifactId>
<version>${guice.version}</version>
</dependency>
<dependency>
<groupId>com.google.errorprone</groupId>
<artifactId>error_prone_annotations</artifactId>
<version>${error.prone.annotations.version}</version>
</dependency>
<dependency>
<groupId>net.bytebuddy</groupId>
<artifactId>byte-buddy</artifactId>
<version>${bytebuddy.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>net.bytebuddy</groupId>
<artifactId>byte-buddy-agent</artifactId>
<version>${bytebuddy.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.maven.shared</groupId>
<artifactId>maven-shared-utils</artifactId>
<version>${maven.shared.utils.version}</version>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-utils</artifactId>
<version>${plexus.utils.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.sisu</groupId>
<artifactId>org.eclipse.sisu.inject</artifactId>
<version>${sisu.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.sisu</groupId>
<artifactId>org.eclipse.sisu.plexus</artifactId>
<version>${sisu.version}</version>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib</artifactId>
<version>${kotlin.version}</version>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib-jdk7</artifactId>
<version>${kotlin.version}</version>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib-jdk8</artifactId>
<version>${kotlin.version}</version>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-reflect</artifactId>
<version>${kotlin.version}</version>
</dependency>
<!-- Test dependencies -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.9.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-params</artifactId>
<version>5.9.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>4.11.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-inline</artifactId>
<version>4.11.0</version>
<scope>test</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</dependency>
</dependencies>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.sonarsource.scanner.maven</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>5.5.0.6356</version>
</plugin>
<plugin>
<groupId>com.ganteater</groupId>
<artifactId>ae-maven-plugin</artifactId>
<version>1.2.9</version>
<configuration>
<variables>
<Project_Dir>${project.basedir}</Project_Dir>
</variables>
</configuration>
<dependencies>
<dependency>
<groupId>com.ganteater.plugins</groupId>
<artifactId>web-ae-plugin</artifactId>
<version>1.2.9</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-plugin-plugin</artifactId>
<version>3.15.2</version>
<configuration>
<skipErrorNoDescriptorsFound>true</skipErrorNoDescriptorsFound>
</configuration>
<executions>
<execution>
<id>mojo-descriptor</id>
<goals>
<goal>descriptor</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.machanism.machai</groupId>
<artifactId>gw-maven-plugin</artifactId>
<version>1.1.10</version>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.14.1</version>
<configuration>
<excludes>
<exclude>**/@guidance.txt</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>org.sonatype.central</groupId>
<artifactId>central-publishing-maven-plugin</artifactId>
<version>0.8.0</version>
<extensions>true</extensions>
<configuration>
<publishingServerId>central</publishingServerId>
</configuration>
</plugin>
<plugin>
<artifactId>plantuml-generator-maven-plugin</artifactId>
<groupId>de.elnarion.maven</groupId>
<version>3.0.1</version>
<configuration>
<outputFilename>class-diagram.puml</outputFilename>
<outputDirectory>target/generated-docs/puml</outputDirectory>
<maxVisibilityFields>PUBLIC</maxVisibilityFields>
<maxVisibilityMethods>PROTECTED</maxVisibilityMethods>
<hideFields>true</hideFields>
<hideMethods>true</hideMethods>
<hideClasses>true</hideClasses>
</configuration>
<executions>
<execution>
<id>gen-class-diagram</id>
<phase>site</phase>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>it.mulders.puml</groupId>
<artifactId>plantuml-maven-plugin</artifactId>
<version>0.4.15</version>
<configuration>
<outputDirectory>${project.build.directory}/site/images</outputDirectory>
<format>PNG</format>
</configuration>
<executions>
<execution>
<id>puml-images</id>
<phase>site</phase>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<sourceFiles>
<directory>${basedir}</directory>
<includes>
<include>src/site/puml/**/*.*</include>
</includes>
</sourceFiles>
<stripPath>src/site/puml</stripPath>
</configuration>
</execution>
<execution>
<id>generated-docs-images</id>
<phase>site</phase>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<sourceFiles>
<directory>${basedir}</directory>
<includes>
<include>target/generated-docs/puml/*.*</include>
</includes>
</sourceFiles>
<stripPath>target/generated-docs/puml</stripPath>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>it.mulders.puml</groupId>
<artifactId>plantuml-v1-adapter</artifactId>
<version>0.4.15</version>
</dependency>
<dependency>
<groupId>net.sourceforge.plantuml</groupId>
<artifactId>plantuml</artifactId>
<version>1.2026.2</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.21.0</version>
</plugin>
<plugin>
<groupId>com.google.code.maven-replacer-plugin</groupId>
<artifactId>replacer</artifactId>
<version>1.5.3</version>
<executions>
<execution>
<phase>site</phase>
<goals>
<goal>replace</goal>
</goals>
</execution>
</executions>
<configuration>
<basedir>${stagingDirectory}</basedir>
<includes>
<include>**/*.html</include>
</includes>
<!-- Regex to match HTML comments -->
<replacements>
<replacement>
<token><!--[\\s\\S]*?--></token>
<value></value>
</replacement>
</replacements>
</configuration>
</plugin>
<plugin>
<groupId>org.simplify4u.plugins</groupId>
<artifactId>sitemapxml-maven-plugin</artifactId>
<version>2.2.0</version>
<executions>
<execution>
<goals>
<goal>gen</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.5.5</version>
<configuration>
<!-- Include @{argLine} to append to existing config -->
<argLine>@{argLine} -Xmx1024m</argLine>
</configuration>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.14</version>
<executions>
<execution>
<id>prepare-agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>report</id>
<phase>test</phase>
<goals>
<goal>report</goal>
</goals>
<configuration>
<!-- Specify the path for the XML report, which
SonarQube expects -->
<outputDirectory>
${project.build.directory}/site/jacoco</outputDirectory>
<formats>
<format>XML</format>
</formats>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<!-- mvn clean install site site:stage -->
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.12.0</version>
<configuration>
<doclint>none</doclint>
<show>package</show>
<useStandardDocletOptions>true</useStandardDocletOptions>
<bottom><![CDATA[©2025-2026 Machanism.org. All Rights Reserved.]]></bottom>
<header><![CDATA[<h1><a href="${project.url}">${project.name}</a></h1>]]></header>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-changes-plugin</artifactId>
<version>3.0.0-M3</version>
<configuration>
<escapeText>false</escapeText>
</configuration>
<reportSets>
<reportSet>
<reports>
<report>changes</report>
</reports>
</reportSet>
</reportSets>
</plugin>
</plugins>
</reporting>
<licenses>
<license>
<name>Apache License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
<scm>
<connection>scm:git:https://github.com/machanism-org/machai.git</connection>
<developerConnection>scm:git:https://github.com/machanism-org/machai.git</developerConnection>
<url>https://github.com/machanism-org/machai.git</url>
</scm>
<distributionManagement>
<site>
<id>machai.machanism.org</id>
<url>scp://machanism.org/@machai</url>
</site>
</distributionManagement>
<issueManagement>
<url>https://github.com/machanism-org/machai/issues</url>
</issueManagement>
<developers>
<developer>
<name>Viktor Tovstyi</name>
<email>viktor.tovstyi@gmail.com</email>
</developer>
</developers>
</project>