| name | maven-build |
| description | Maven build configuration for the crypto-scout multi-module Java 25 project |
| license | MIT |
| compatibility | opencode |
| metadata | {"tool":"maven","language":"java","version":"25"} |
What I Do
Provide guidance for building, testing, and packaging the crypto-scout multi-module Maven project.
Project Structure
crypto-scout/
├── pom.xml # Root aggregator POM
├── crypto-scout-test/
│ └── pom.xml # Test library
├── crypto-scout-client/
│ └── pom.xml # Data collection service
├── crypto-scout-collector/
│ └── pom.xml # Data persistence service
└── crypto-scout-analyst/
└── pom.xml # Analysis service
Build Commands
Full Build
mvn clean install
mvn -q -DskipTests install
Module-Specific Builds
cd crypto-scout-client
mvn clean package
cd crypto-scout-collector
mvn clean package -DskipTests
Testing
mvn test
cd crypto-scout-test && mvn test
mvn test -Dtest=AmqpPublisherTest
mvn test -Dtest=AmqpPublisherTest#shouldPublishPayloadToStream
mvn -q -Dpodman.compose.up.timeout.min=5 test
mvn -q -Dtest.db.jdbc.url=jdbc:postgresql://localhost:5432/crypto_scout test
Clean Build
mvn clean
cd crypto-scout-client && mvn clean package -DskipTests
POM Configuration
Root POM (Aggregator)
<project>
<groupId>com.github.akarazhev.cryptoscout</groupId>
<artifactId>crypto-scout</artifactId>
<version>0.0.1</version>
<packaging>pom</packaging>
<modules>
<module>crypto-scout-test</module>
<module>crypto-scout-client</module>
<module>crypto-scout-collector</module>
<module>crypto-scout-analyst</module>
</modules>
</project>
Module POM Structure
<project>
<parent>
<groupId>com.github.akarazhev.cryptoscout</groupId>
<artifactId>crypto-scout</artifactId>
<version>0.0.1</version>
</parent>
<artifactId>crypto-scout-client</artifactId>
<packaging>jar</packaging>
<properties>
<java.version>25</java.version>
<maven.compiler.release>25</maven.compiler.release>
<activej.version>6.0-rc2</activej.version>
<stream-client.version>1.4.0</stream-client.version>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
maven-compiler-plugin
3.14.1
25
org.apache.maven.plugins
maven-shade-plugin
3.6.1
package
shade
com.github.akarazhev.cryptoscout.Client
Key Dependencies by Module
crypto-scout-test
jcryptolib - JSON utilities
junit-jupiter - JUnit 6 testing
stream-client - RabbitMQ Streams
amqp-client - RabbitMQ AMQP
postgresql - PostgreSQL driver
crypto-scout-client
jcryptolib - JSON utilities, clients
activej-servicegraph - DI and lifecycle
activej-jmx - JMX monitoring
stream-client - RabbitMQ Streams
crypto-scout-collector
jcryptolib - JSON utilities
activej-servicegraph - DI and lifecycle
activej-jmx - JMX monitoring
activej-datastream - Data streaming
stream-client - RabbitMQ Streams
amqp-client - RabbitMQ AMQP
postgresql - PostgreSQL driver
HikariCP - Connection pooling
crypto-scout-analyst
- Same as crypto-scout-collector
Build Artifacts
Output Locations
| Module | Artifact | Location |
|---|
| crypto-scout-test | JAR library | target/crypto-scout-test-0.0.1.jar |
| crypto-scout-client | Fat JAR | target/crypto-scout-client-0.0.1.jar |
| crypto-scout-collector | Fat JAR | target/crypto-scout-collector-0.0.1.jar |
| crypto-scout-analyst | Fat JAR | target/crypto-scout-analyst-0.0.1.jar |
Running Fat JARs
java -jar crypto-scout-client/target/crypto-scout-client-0.0.1.jar
java -jar crypto-scout-collector/target/crypto-scout-collector-0.0.1.jar
java -jar crypto-scout-analyst/target/crypto-scout-analyst-0.0.1.jar
Troubleshooting
Build Failures
rm -rf ~/.m2/repository/com/github/akarazhev
mvn clean install
mvn dependency:tree
mvn versions:display-dependency-updates
Test Failures
mvn test -X
mvn install -DskipTests
mvn test -Dtest=ClassName -Dmaven.surefire.debug
When to Use Me
Use this skill when:
- Building the project for the first time
- Running tests across modules
- Creating new module POMs
- Troubleshooting build failures
- Configuring Maven plugins
- Understanding dependency management
- Packaging services for deployment