一键导入
maven-build
Maven build configuration for the crypto-scout multi-module Java 25 project
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Maven build configuration for the crypto-scout multi-module Java 25 project
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| 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"} |
Provide guidance for building, testing, and packaging the crypto-scout multi-module Maven project.
crypto-scout/
├── pom.xml # Root aggregator POM (version 0.0.1)
│ └── modules:
│ ├── jcryptolib (0.0.4) # Library JAR
│ ├── crypto-scout-test (0.0.1) # Test library JAR
│ ├── crypto-scout-client (0.0.1) # Fat JAR service
│ ├── crypto-scout-collector (0.0.1) # Fat JAR service
│ └── crypto-scout-analyst (0.0.1) # Fat JAR service
Note: crypto-scout-mq is infrastructure-only and not a Java/Maven module.
# Clean and build all modules
mvn clean install
# Build without tests (faster)
mvn -q -DskipTests install
# Build specific module
cd crypto-scout-client
mvn clean package
# Build with dependency resolution from root
cd crypto-scout-collector
mvn clean package -DskipTests
# Run all tests
mvn test
# Run tests for specific module
cd crypto-scout-test && mvn test
# Run single test class
mvn test -Dtest=AmqpPublisherTest
# Run single test method
mvn test -Dtest=AmqpPublisherTest#shouldPublishPayloadToStream
# Run with extended timeout (slow environments)
mvn -q -Dpodman.compose.up.timeout.min=5 test
# Custom database URL for tests
mvn -q -Dtest.db.jdbc.url=jdbc:postgresql://localhost:5432/crypto_scout test
# Clean all modules
mvn clean
# Clean and rebuild single module
cd crypto-scout-client && mvn clean package -DskipTests
<project>
<groupId>com.github.akarazhev.cryptoscout</groupId>
<artifactId>crypto-scout</artifactId>
<version>0.0.1</version>
<packaging>pom</packaging>
<modules>
<module>jcryptolib</module>
<module>crypto-scout-test</module>
<module>crypto-scout-client</module>
<module>crypto-scout-collector</module>
<module>crypto-scout-analyst</module>
</modules>
</project>
<project>
<parent>
<groupId>com.github.akarazhev.cryptoscout</groupId>
<artifactId>crypto-scout</artifactId>
<version>0.0.1</version>
</parent>
<artifactId>jcryptolib</artifactId>
<version>0.0.4</version>
<packaging>jar</packaging>
<properties>
<java.version>25</java.version>
<maven.compiler.release>25</maven.compiler.release>
<activej.version>6.0-rc2</activej.version>
<dsl-json.version>2.0.2</dsl-json.version>
<ta4j-core.version>0.22.1</ta4j-core.version>
<junit-jupiter.version>6.1.0-M1</junit-jupiter.version>
</properties>
<build>
<plugins>
<!-- Compiler plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.14.0</version>
<configuration>
<release>25</release>
</configuration>
</plugin>
<!-- Jar plugin for libraries -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.4.2</version>
</plugin>
</plugins>
</build>
</project>
<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>
<maven.shade.plugin.version>3.6.1</maven.shade.plugin.version>
<activej.version>6.0-rc2</activej.version>
<jcryptolib.version>0.0.4</jcryptolib.version>
</properties>
<build>
<plugins>
<!-- Compiler plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.14.1</version>
<configuration>
<release>25</release>
</configuration>
</plugin>
<!-- Shade plugin for fat JAR -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.6.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.github.akarazhev.cryptoscout.Client</mainClass>
</transformer>
</transformers>
<createDependencyReducedPom>true</createDependencyReducedPom>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
| Dependency | Version | Purpose |
|---|---|---|
| activej-datastream | 6.0-rc2 | Async data streams |
| activej-http | 6.0-rc2 | HTTP client/server |
| dsl-json | 2.0.2 | JSON serialization |
| ta4j-core | 0.22.1 | Technical analysis |
| slf4j-api | 2.1.0-alpha1 | Logging API |
| logback-classic | 1.5.27 | Logging backend |
| junit-jupiter | 6.1.0-M1 | Testing |
| mockito | 5.21.0 | Mocking |
| Dependency | Version | Purpose |
|---|---|---|
| jcryptolib | 0.0.4 | JSON utilities |
| junit-jupiter | 6.1.0-M1 | JUnit 6 testing |
| stream-client | 1.4.0 | RabbitMQ Streams |
| amqp-client | 5.28.0 | RabbitMQ AMQP |
| postgresql | 42.7.9 | PostgreSQL driver |
| Dependency | Version | Purpose |
|---|---|---|
| jcryptolib | 0.0.4 | JSON utilities, clients |
| activej-servicegraph | 6.0-rc2 | DI and lifecycle |
| activej-jmx | 6.0-rc2 | JMX monitoring |
| stream-client | 1.4.0 | RabbitMQ Streams |
| Dependency | Version | Purpose |
|---|---|---|
| jcryptolib | 0.0.4 | JSON utilities |
| activej-servicegraph | 6.0-rc2 | DI and lifecycle |
| activej-jmx | 6.0-rc2 | JMX monitoring |
| activej-datastream | 6.0-rc2 | Data streaming |
| stream-client | 1.4.0 | RabbitMQ Streams |
| amqp-client | 5.28.0 | RabbitMQ AMQP |
| postgresql | 42.7.9 | PostgreSQL driver |
| HikariCP | 7.0.2 | Connection pooling |
| crypto-scout-test | 0.0.1 | Test utilities |
| Dependency | Version | Purpose |
|---|---|---|
| Same as crypto-scout-collector |
| Module | Artifact | Type | Location |
|---|---|---|---|
| jcryptolib | JAR library | Library | target/jcryptolib-0.0.4.jar |
| crypto-scout-test | JAR library | Library | target/crypto-scout-test-0.0.1.jar |
| crypto-scout-client | Fat JAR | Service | target/crypto-scout-client-0.0.1.jar |
| crypto-scout-collector | Fat JAR | Service | target/crypto-scout-collector-0.0.1.jar |
| crypto-scout-analyst | Fat JAR | Service | target/crypto-scout-analyst-0.0.1.jar |
# crypto-scout-client
java -jar crypto-scout-client/target/crypto-scout-client-0.0.1.jar
# crypto-scout-collector
java -jar crypto-scout-collector/target/crypto-scout-collector-0.0.1.jar
# crypto-scout-analyst
java -jar crypto-scout-analyst/target/crypto-scout-analyst-0.0.1.jar
# Clear local repo and rebuild
rm -rf ~/.m2/repository/com/github/akarazhev
mvn clean install
# Debug dependency tree
mvn dependency:tree
# Check for updates
mvn versions:display-dependency-updates
# Run with verbose output
mvn test -X
# Skip tests temporarily
mvn install -DskipTests
# Run specific test with debug
mvn test -Dtest=ClassName -Dmaven.surefire.debug
Use this skill when:
Java 25 development patterns for the crypto-scout ecosystem including microservices, ActiveJ, and async I/O
Podman Compose orchestration for crypto-scout services including RabbitMQ, TimescaleDB, and microservices
High-level architecture and design patterns for the crypto-scout ecosystem
RabbitMQ Streams and AMQP messaging patterns for the crypto-scout ecosystem
TimescaleDB data modeling and operations for crypto market time-series data