jmsfx-core
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>io.github.ctgnz</groupId>
<artifactId>jmsfx-core</artifactId>
<version>2.0.0</version>
</dependency><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>
<name>JMSFX Core API</name>
<artifactId>jmsfx-core</artifactId>
<packaging>jar</packaging>
<parent>
<groupId>io.github.ctgnz</groupId>
<artifactId>jmsfx-parent</artifactId>
<version>2.0.0</version>
<relativePath>../jmsfx-parent/pom.xml</relativePath>
</parent>
<dependencies>
<dependency>
<groupId>io.github.ctgnz</groupId>
<artifactId>foxglove</artifactId>
<version>${foxglove.version}</version>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<sourceDirectory>src/main/java</sourceDirectory>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**</include>
</includes>
</resource>
</resources>
<plugins>
<plugin>
<!--
A test jar, so the injected-markup contract has one copy rather than one per library.
The checks are library-agnostic - they reach everything through IconLibrary.discover()
and jmsfx-core's own interfaces - but they cannot run here, because jmsfx-core
deliberately has no library on its classpath (jmsfx#76). So they live here and run
there, and each library's own test is a subclass with nothing in it.
Triplicating them was the alternative, and verification code that exists three times
is verification code that drifts. See jmsfx#122.
This jar is published, deliberately. A test jar is an attached artifact, so
-Prelease deploy sends it to Central along with the main one, and it carries all of
this module's test classes - TestFixtures and its fake IconLibrary among them.
excludeArtifacts cannot separate them: it matches on artifactId, so excluding the
test jar would exclude jmsfx-core itself. Weighed at 2.0.0 and accepted: it is 44K,
and a consumer generating their own library is exactly who would want the contract
to subclass. The alternative considered was a jmsfx-core-testkit module, which could
be excluded by name; revisit that if the fixtures turn out to be worth hiding.
See jmsfx#127.
-->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<id>test-jar</id>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.3.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<configuration>
<subpackages>io.github.ctgnz.jmsfx</subpackages>
</configuration>
</plugin>
</plugins>
</build>
</project>