Java maven反应堆构建学习实践

简介: Java maven反应堆构建学习实践

Java maven反应堆构建学习实践

实践环境

Apache Maven 3.0.5 (Red Hat 3.0.5-17)

应用示例

示例项目结构

maven示例项目组织结构如下

maven-study
│  pom.xml
├─first-sub-module
│  │  pom.xml
│  │
│  ├─src
│  │  ├─main
│  │  │  └─java
│  │  │      └─com
│  │  │          └─shouke
│  │  │              └─mvnstudy
│  │  │                      HelloMaven.java
│  │  │
│  │  └─test
│  │      └─java
│  │          └─com
│  │              └─shouke
│  │                  └─mvnstudy
│  │                          TestHelloMaven.java
│  │
│  └─sub-sub-module
│      │  pom.xml
│      │
│      └─src
│          ├─main
│          │  └─java
│          │      └─com
│          │          └─shouke
│          │              └─mvnstudy
│          │                      HelloMaven.java
│          │
│          └─test
│              └─java
│                  └─com
│                      └─shouke
│                          └─mvnstudy
│                                  TestHelloMaven.java
└─second-sub-module
    │  pom.xml
    └─src
        ├─main
        │  └─java
        │      └─com
        │          └─shouke
        │              └─mvnstudy
        │                      HelloMaven.java
        └─test
            └─java
                └─com
                    └─shouke
                        └─mvnstudy
                                TestHelloMaven.java

pom.xml

<?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>com.shouke.mvnstudy</groupId>
    <artifactId>parent-module</artifactId>
    <version>1.0.0-SNAPSHOT</version>
    <packaging>pom</packaging>
    <dependencies>
        <!-- junit 依赖 -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.10</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <modules>    
        <module>first-sub-module</module>
        <module>second-sub-module</module>
    </modules>
</project>
</xml>

first-sub-module/pom.xml

<?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>com.shouke.mvnstudy</groupId>
    <artifactId>first-sub-module</artifactId>
    <version>1.0.0-SNAPSHOT</version>
    <dependencies>
        <!-- junit 依赖 -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.10</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.shouke.mvnstudy</groupId>
            <artifactId>second-sub-module</artifactId>
            <version>1.0.0-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>com.shouke.mvnstudy</groupId>
            <artifactId>sub-sub-module</artifactId>
            <version>1.0.0-SNAPSHOT</version>
        </dependency>
    </dependencies>
    <parent>
        <groupId>com.shouke.mvnstudy</groupId>
        <!--父项目id-->
        <artifactId>parent-module</artifactId>
        <version>1.0.0-SNAPSHOT</version>
    </parent>
</project>
</xml>

first-sub-module/sub-sub-module/pom.xml

<?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>com.shouke.mvnstudy</groupId>
    <artifactId>sub-sub-module</artifactId>
    <version>1.0.0-SNAPSHOT</version>
    <dependencies>
        <!-- junit 依赖 -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.10</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
</project>
</xml>

second-sub-module/pom.xml

<?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>com.shouke.mvnstudy</groupId>
    <artifactId>second-sub-module</artifactId>
    <version>1.0.0-SNAPSHOT</version>
    <dependencies>
        <!-- junit 依赖 -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.10</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <parent>
        <groupId>com.shouke.mvnstudy</groupId>
        <!--父项目id-->
        <artifactId>parent-module</artifactId>
        <version>1.0.0-SNAPSHOT</version>
    </parent>
</project>
</xml>

学习实践

-pl选项应用

# mvn clean -Dautoconfig.skip=true -Dmaven.test.skip=true -pl first-sub-module  compile
[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building first-sub-module 1.0.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.219s
[INFO] Finished at: Fri Dec 24 11:20:23 CST 2021
[INFO] Final Memory: 17M/1447M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project first-sub-module: Could not resolve dependencies for project com.shouke.mvnstudy:first-sub-module:jar:1.0.0-SNAPSHOT: Could not find artifact com.shouke.mvnstudy:second-sub-module:jar:1.0.0-SNAPSHOT -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException

-am选项应用

# mvn clean -Dautoconfig.skip=true -Dmaven.test.skip=true -pl first-sub-module -am compile
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO] 
[INFO] parent-module
[INFO] second-sub-module
[INFO] first-sub-module
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building parent-module 1.0.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.4.1:clean (default-clean) @ parent-module ---
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building second-sub-module 1.0.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.4.1:clean (default-clean) @ second-sub-module ---
[INFO] Deleting /root/maven-study/second-sub-module/target
[INFO] 
[INFO] --- maven-resources-plugin:2.5:resources (default-resources) @ second-sub-module ---
[debug] execute contextualize
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory /root/maven-study/second-sub-module/src/main/resources
[INFO] 
[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ second-sub-module ---
[WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent!
[INFO] Compiling 1 source file to /root/maven-study/second-sub-module/target/classes
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building first-sub-module 1.0.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.4.1:clean (default-clean) @ first-sub-module ---
[INFO] 
[INFO] --- maven-resources-plugin:2.5:resources (default-resources) @ first-sub-module ---
[debug] execute contextualize
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory /root/maven-study/first-sub-module/src/main/resources
[INFO] 
[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ first-sub-module ---
[WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent!
[INFO] Compiling 1 source file to /root/maven-study/first-sub-module/target/classes
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] 
[INFO] parent-module ..................................... SUCCESS [0.146s]
[INFO] second-sub-module ................................. SUCCESS [0.576s]
[INFO] first-sub-module .................................. SUCCESS [0.346s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.187s
[INFO] Finished at: Fri Dec 24 11:22:06 CST 2021
[INFO] Final Memory: 22M/1096M
[INFO] ------------------------------------------------------------------------

-amd选项应用

对比示例

# mvn clean -Dautoconfig.skip=true -Dmaven.test.skip=true -pl second-sub-module compile
[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building second-sub-module 1.0.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.4.1:clean (default-clean) @ second-sub-module ---
[INFO] 
[INFO] --- maven-resources-plugin:2.5:resources (default-resources) @ second-sub-module ---
[debug] execute contextualize
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory /root/maven-study/second-sub-module/src/main/resources
[INFO] 
[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ second-sub-module ---
[WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent!
[INFO] Compiling 1 source file to /root/maven-study/second-sub-module/target/classes
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.976s
[INFO] Finished at: Fri Dec 24 11:21:18 CST 2021
[INFO] Final Memory: 23M/1447M
[INFO] ------------------------------------------------------------------------
# mvn clean -Dautoconfig.skip=true -Dmaven.test.skip=true -pl second-sub-module -am compile
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO] 
[INFO] parent-module
[INFO] second-sub-module
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building parent-module 1.0.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.4.1:clean (default-clean) @ parent-module ---
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building second-sub-module 1.0.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.4.1:clean (default-clean) @ second-sub-module ---
[INFO] Deleting /root/maven-study/second-sub-module/target
[INFO] 
[INFO] --- maven-resources-plugin:2.5:resources (default-resources) @ second-sub-module ---
[debug] execute contextualize
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory /root/maven-study/second-sub-module/src/main/resources
[INFO] 
[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ second-sub-module ---
[WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent!
[INFO] Compiling 1 source file to /root/maven-study/second-sub-module/target/classes
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] 
[INFO] parent-module ..................................... SUCCESS [0.132s]
[INFO] second-sub-module ................................. SUCCESS [0.536s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.771s
[INFO] Finished at: Fri Dec 24 11:24:13 CST 2021
[INFO] Final Memory: 23M/1447M
[INFO] ------------------------------------------------------------------------

-amd应用示例

# mvn clean -Dautoconfig.skip=true -Dmaven.test.skip=true -pl second-sub-module -amd compile
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO] 
[INFO] second-sub-module
[INFO] first-sub-module
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building second-sub-module 1.0.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.4.1:clean (default-clean) @ second-sub-module ---
[INFO] Deleting /root/maven-study/second-sub-module/target
[INFO] 
[INFO] --- maven-resources-plugin:2.5:resources (default-resources) @ second-sub-module ---
[debug] execute contextualize
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory /root/maven-study/second-sub-module/src/main/resources
[INFO] 
[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ second-sub-module ---
[WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent!
[INFO] Compiling 1 source file to /root/maven-study/second-sub-module/target/classes
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building first-sub-module 1.0.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.4.1:clean (default-clean) @ first-sub-module ---
[INFO] Deleting /root/maven-study/first-sub-module/target
[INFO] 
[INFO] --- maven-resources-plugin:2.5:resources (default-resources) @ first-sub-module ---
[debug] execute contextualize
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory /root/maven-study/first-sub-module/src/main/resources
[INFO] 
[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ first-sub-module ---
[WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent!
[INFO] Compiling 1 source file to /root/maven-study/first-sub-module/target/classes
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] 
[INFO] second-sub-module ................................. SUCCESS [0.652s]
[INFO] first-sub-module .................................. SUCCESS [0.344s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.100s
[INFO] Finished at: Fri Dec 24 11:24:33 CST 2021
[INFO] Final Memory: 24M/1157M
[INFO] ------------------------------------------------------------------------

嵌套子模块构建

# mvn clean -Dautoconfig.skip=true -Dmaven.test.skip=true -pl first-sub-module/sub-sub-module compile
[INFO] Scanning for projects...
[ERROR] Could not find the selected project in the reactor: first-sub-module/sub-sub-module -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MavenExecutionException

修改first-sub-module/pom.xml

<?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>com.shouke.mvnstudy</groupId>
    <artifactId>first-sub-module</artifactId>
    <version>1.0.0-SNAPSHOT</version>
    <packaging>pom</packaging>
    <dependencies>
        <!-- junit 依赖 -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.10</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.shouke.mvnstudy</groupId>
            <artifactId>second-sub-module</artifactId>
            <version>1.0.0-SNAPSHOT</version>
        </dependency>
    </dependencies>
    <parent>
        <groupId>com.shouke.mvnstudy</groupId>
        <!--父项目id-->
        <artifactId>parent-module</artifactId>
        <version>1.0.0-SNAPSHOT</version>
    </parent>
    <modules>
        <module>sub-sub-module</module>
    </modules>
</project>
</xml>

修改first-sub-module/sub-sub-module/pom.xml

<?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>com.shouke.mvnstudy</groupId>
    <artifactId>sub-sub-module</artifactId>
    <version>1.0.0-SNAPSHOT</version>
    <dependencies>
        <!-- junit 依赖 -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.10</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <parent>
        <groupId>com.shouke.mvnstudy</groupId>
        <!--父项目id-->
        <artifactId>first-sub-module</artifactId>
        <version>1.0.0-SNAPSHOT</version>
    </parent>
</project>
</xml>
# mvn clean -Dautoconfig.skip=true -Dmaven.test.skip=true -pl first-sub-module/sub-sub-module -am compile
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO] 
[INFO] parent-module
[INFO] second-sub-module
[INFO] first-sub-module
[INFO] sub-sub-module
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building parent-module 1.0.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.4.1:clean (default-clean) @ parent-module ---
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building second-sub-module 1.0.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.4.1:clean (default-clean) @ second-sub-module ---
[INFO] Deleting /root/maven-study/second-sub-module/target
[INFO] 
[INFO] --- maven-resources-plugin:2.5:resources (default-resources) @ second-sub-module ---
[debug] execute contextualize
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory /root/maven-study/second-sub-module/src/main/resources
[INFO] 
[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ second-sub-module ---
[WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent!
[INFO] Compiling 1 source file to /root/maven-study/second-sub-module/target/classes
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building first-sub-module 1.0.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.4.1:clean (default-clean) @ first-sub-module ---
[INFO] Deleting /root/maven-study/first-sub-module/target
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building sub-sub-module 1.0.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.4.1:clean (default-clean) @ sub-sub-module ---
[INFO] 
[INFO] --- maven-resources-plugin:2.5:resources (default-resources) @ sub-sub-module ---
[debug] execute contextualize
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory /root/maven-study/first-sub-module/sub-sub-module/src/main/resources
[INFO] 
[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ sub-sub-module ---
[WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent!
[INFO] Compiling 1 source file to /root/maven-study/first-sub-module/sub-sub-module/target/classes
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] 
[INFO] parent-module ..................................... SUCCESS [0.148s]
[INFO] second-sub-module ................................. SUCCESS [0.728s]
[INFO] first-sub-module .................................. SUCCESS [0.005s]
[INFO] sub-sub-module .................................... SUCCESS [0.370s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.370s
[INFO] Finished at: Fri Dec 24 11:39:07 CST 2021
[INFO] Final Memory: 22M/1098M
[INFO] ------------------------------------------------------------------------
结论

注意-pl只适用在“父子”结构的项目中,构建子项目

针对以上结论,修改相关pom.xml,再次测试验证

修改pom.xml

<?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>com.shouke.mvnstudy</groupId>
    <artifactId>parent-module</artifactId>
    <version>1.0.0-SNAPSHOT</version>
    <dependencies>
        <!-- junit 依赖 -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.10</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
</project>
</xml>

修改second-sub-module/pom.xml

<?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>com.shouke.mvnstudy</groupId>
    <artifactId>second-sub-module</artifactId>
    <version>1.0.0-SNAPSHOT</version>
    <dependencies>
        <!-- junit 依赖 -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.10</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
</project>
</xml>
# mvn clean -Dautoconfig.skip=true -Dmaven.test.skip=true -pl second-sub-module compile
[INFO] Scanning for projects...
[ERROR] Could not find the selected project in the reactor: second-sub-module -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MavenExecutionException

如上,提示找不到模块。

-------------------------------文字太少,占位符---------------------------------

-------------------------------文字太少,占位符---------------------------------

目录
相关文章
|
10天前
|
Java
Java基础学习day08-作业
本作业涵盖Java中Lambda表达式的应用,包括Runnable与Comparator接口的简化实现、自定义函数式接口NumberProcessor进行加减乘及最大值操作,以及通过IntProcessor处理整数数组,实现遍历、平方和奇偶判断等功能,强化函数式编程实践。
38 5
|
8天前
|
人工智能 缓存 监控
使用LangChain4j构建Java AI智能体:让大模型学会使用工具
AI智能体是大模型技术的重要演进方向,它使模型能够主动使用工具、与环境交互,以完成复杂任务。本文详细介绍如何在Java应用中,借助LangChain4j框架构建一个具备工具使用能力的AI智能体。我们将创建一个能够进行数学计算和实时信息查询的智能体,涵盖工具定义、智能体组装、记忆管理以及Spring Boot集成等关键步骤,并展示如何通过简单的对话界面与智能体交互。
150 1
|
10天前
|
Java API 容器
Java基础学习day08-2
本节讲解Java方法引用与常用API,包括静态、实例、特定类型方法及构造器引用的格式与使用场景,并结合代码示例深入解析。同时介绍String和ArrayList的核心方法及其实际应用。
56 1
|
12天前
|
人工智能 Java API
Java与大模型集成实战:构建智能Java应用的新范式
随着大型语言模型(LLM)的API化,将其强大的自然语言处理能力集成到现有Java应用中已成为提升应用智能水平的关键路径。本文旨在为Java开发者提供一份实用的集成指南。我们将深入探讨如何使用Spring Boot 3框架,通过HTTP客户端与OpenAI GPT(或兼容API)进行高效、安全的交互。内容涵盖项目依赖配置、异步非阻塞的API调用、请求与响应的结构化处理、异常管理以及一些面向生产环境的最佳实践,并附带完整的代码示例,助您快速将AI能力融入Java生态。
142 12
|
11天前
|
Java 程序员
Java基础学习day08
本节讲解Java中的代码块(静态与实例)及其作用,深入介绍内部类(成员、静态、局部及匿名)的定义与使用,并引入函数式编程思想,重点阐述Lambda表达式及其在简化匿名内部类中的应用。
91 5
|
11天前
|
人工智能 Java API
构建基于Java的AI智能体:使用LangChain4j与Spring AI实现RAG应用
当大模型需要处理私有、实时的数据时,检索增强生成(RAG)技术成为了核心解决方案。本文深入探讨如何在Java生态中构建具备RAG能力的AI智能体。我们将介绍新兴的Spring AI项目与成熟的LangChain4j框架,详细演示如何从零开始构建一个能够查询私有知识库的智能问答系统。内容涵盖文档加载与分块、向量数据库集成、语义检索以及与大模型的最终合成,并提供完整的代码实现,为Java开发者开启构建复杂AI智能体的大门。
286 1
|
11天前
|
Java
Java基础学习day07-作业
本作业包含六个Java编程案例:1)动物类继承与多态;2)加油卡支付系统;3)员工管理类设计;4)学生信息统计接口;5)USB设备控制;6)家电智能控制。综合运用抽象类、接口、继承、多态等面向对象技术,强化Java基础编程能力。
111 3
|
11天前
|
Java
Java基础学习day06-作业
本内容为Java基础学习作业,涵盖两个案例:一是通过Card类及其子类GoldenCard、SilverCard实现加油卡系统,体现封装与继承;二是通过Shape类及子类Circle、Rectangle演示多态与方法重写,强化面向对象编程理解。
39 1
|
11天前
|
设计模式 存储 Java
Java基础学习day07
本节讲解Java中的final关键字、单例设计模式、枚举类、抽象类与接口。涵盖常量定义、单例写法(饿汉式/懒汉式)、枚举特点及应用场景,以及抽象类与接口的使用与区别,助力掌握核心面向对象编程思想。
70 1
|
16天前
|
Java
Java基础学习day05-作业
本文为Java基础学习第五天作业,通过五个案例练习类与对象的定义、构造方法、set/get方法及成员方法的应用。涵盖女友、学生、教师、手机和电影等类的设计与测试,强化面向对象编程基础。
47 2

热门文章

最新文章

推荐镜像

更多