wickra-synth
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>org.wickra</groupId>
<artifactId>wickra-synth</artifactId>
<version>0.1.2</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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.wickra</groupId>
<artifactId>wickra-synth</artifactId>
<version>0.1.2</version>
<packaging>jar</packaging>
<name>wickra-synth</name>
<description>Deterministic synthetic market-microstructure generation for the JVM over the Wickra C ABI (FFM/Panama): a seeded GenSpec produces byte-identical OHLCV candles, order-book snapshots, trades and funding across every language binding.</description>
<url>https://github.com/wickra-lib/wickra-synth</url>
<licenses>
<license>
<name>MIT</name>
<url>https://opensource.org/licenses/MIT</url>
<distribution>repo</distribution>
</license>
<license>
<name>Apache-2.0</name>
<url>https://www.apache.org/licenses/LICENSE-2.0</url>
<distribution>repo</distribution>
</license>
</licenses>
<developers>
<developer>
<id>kingchenc</id>
<name>kingchenc</name>
<url>https://github.com/kingchenc</url>
</developer>
</developers>
<scm>
<connection>scm:git:https://github.com/wickra-lib/wickra-synth.git</connection>
<developerConnection>scm:git:https://github.com/wickra-lib/wickra-synth.git</developerConnection>
<url>https://github.com/wickra-lib/wickra-synth</url>
</scm>
<properties>
<maven.compiler.release>22</maven.compiler.release>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- The native C ABI library is built by `cargo build -p wickra-synth-c`
(debug profile) into the workspace target/debug directory. -->
<native.lib.dir>${project.basedir}/../../target/debug</native.lib.dir>
<junit.version>6.1.3</junit.version>
</properties>
<dependencies>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.15.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.5.6</version>
<configuration>
<!-- FFM needs native access enabled. native.lib.dir goes through
systemPropertyVariables (not argLine) so a path with spaces is not
split into separate JVM arguments. -->
<argLine>--enable-native-access=ALL-UNNAMED</argLine>
<systemPropertyVariables>
<native.lib.dir>${native.lib.dir}</native.lib.dir>
</systemPropertyVariables>
</configuration>
</plugin>
</plugins>
</build>
<profiles>
<!--
Release profile (CI only). `release.yml` runs `mvn -Prelease deploy`, and
until this profile existed Maven matched nothing, warned, and deployed a
bare jar: no sources, no javadoc, no signatures, no publishing plugin.
Central rejects all four, so the release job could only ever have failed,
and only after the tag, which is irreversible.
The native libraries are unpacked from the wickra-synth-c-<triple>.tar.gz
release assets into src/main/resources/native/<os>-<arch>/ before deploy,
so the published jar carries every platform's library.
-->
<profile>
<id>release</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.4.0</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.12.0</version>
<configuration>
<doclint>none</doclint>
<quiet>true</quiet>
</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>3.2.8</version>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals><goal>sign</goal></goals>
<configuration>
<!-- Non-interactive signing on CI: modern GPG needs loopback
pinentry to take the passphrase from the environment
without a TTY. -->
<gpgArguments>
<arg>--pinentry-mode</arg>
<arg>loopback</arg>
</gpgArguments>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.sonatype.central</groupId>
<artifactId>central-publishing-maven-plugin</artifactId>
<version>0.11.0</version>
<extensions>true</extensions>
<configuration>
<publishingServerId>central</publishingServerId>
<autoPublish>true</autoPublish>
<!-- Wait for the deployment to be *published*, not merely
validated. Without this the plugin stops at validation and
prints "to finish publishing visit ...", so the job reports
success while the artifact is not on the repository and
anything that fails after validation is invisible here. It
does not change whether the artifact publishes; autoPublish
does that. It changes only what a green job means. Note it
waits for the portal's published state, not for the repo1
mirror, which lags separately. -->
<waitUntil>published</waitUntil>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>