上一节建立了两个项目,依赖关系是由app项目提交jar到maven库中,然后wabapp加载依赖库实现的.
这一节介绍使用项目间的依赖关系,比如我这个项目必须与另一个项目共存,那么可以建立依赖关系.
以下是在两个项目的上级目录建立pom.xml
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.test</groupId>
<artifactId>demo</artifactId>
<packaging>pom</packaging>
<version>1.0.0-SNAPSHOT</version>
<name>CE Maven Demo</name>
<modules>
<module>app</module>
<module>webapp</module>
</modules>
<dependencyManagement>
<!--webx-3.0 related-->
<dependencies>
<dependency>
<groupId>com.test.app</groupId>
<artifactId>app</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.test.app</groupId>
<artifactId>webapp</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.4</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</dependencyManagement>
</project>
这里指定了gav,还指定了module,子模块依赖的架包及版本号.
子项目app:
<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>
<parent>
<groupId>com.test</groupId>
<artifactId>demo</artifactId>
<version>1.0.0-SNAPSHOT</version>
</parent>
<groupId>com.test.app</groupId>
<artifactId>app</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>app</name>
<url>http://maven.apache.org</url>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
</dependencies>
</project>
指定了gav,还指定了其parent,引入的jar,还设置了maven的编译级别,因为maven还停留在1.3,现在基本上是1.6了。
子项目webapp:
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.test</groupId>
<artifactId>demo</artifactId>
<version>1.0.0-SNAPSHOT</version>
</parent>
<groupId>com.test.app</groupId>
<artifactId>webapp</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>webapp Maven Webapp</name>
<url>http://maven.apache.org</url>
<build>
<finalName>webapp</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<!--
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>tomcat-maven-plugin</artifactId>
<configuration>
<url>http://127.0.0.1:9001/manager</url>
<server>test</server>
<path>/</path>
</configuration>
</plugin>
-->
</plugins>
</build>
<dependencies>
<dependency>
<groupId>com.test.app</groupId>
<artifactId>app</artifactId>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
</dependencies>
</project>
这里所引用的项目代码与上一讲相同。
在两个项目的上级执行 mvn eclipse:eclipse 可以生成两个项目的eclipse项目
执行mvn package 可以打包,查看target可以看到app的jar已经打到webapp当中。
发布到tomcat下运行正常。
分享到:
相关推荐
Maven使用一个统一的配置方式,使得项目间的依赖关系清晰明了,便于维护和更新。本文将深入探讨Maven如何处理多项目依赖关系,并结合标签“源码”和“工具”,探讨其在实际开发中的应用。 一、Maven项目结构与POM....
"Maven 项目依赖关系管理" Maven 项目依赖关系管理是 Java 应用程序开发中非常重要的一步。Maven 是一种流行的项目管理工具,可以帮助开发者快速构建和管理项目。然而,在实际开发中,我们常常会遇到一些不可以在...
Maven构建多模块项目极大地简化了大型项目的管理,通过合理地组织模块间的依赖关系和统一的配置管理,提高了开发效率和代码质量。实践中,需要灵活运用Maven的各种特性,结合最佳实践,以构建高效、稳定的多模块...
该资源包含了一个maven的依赖关系的源代吗,包含了给予maven构建的hibernate添加数据的源码,喜欢的下载
在Java开发领域,Maven是一个不可或缺的构建工具,它通过管理项目依赖关系,简化了项目的构建、测试和部署过程。本文将深入探讨如何在Maven项目中引入依赖的包,并结合相关源码和工具,帮助开发者更好地理解和使用这...
在使用Maven构建Kettle项目时,我们需要确保正确配置Maven的POM.xml文件,以包含所有必要的依赖项,这些依赖项通常是以jar包的形式存在。"Kettle Maven jar"标签提示我们,这里涉及的是Kettle与Maven结合使用时所需...
比如,Eureka或Zookeeper可以帮助服务自动注册和发现,Maven构建的服务可以通过添加对应的客户端依赖来实现这一功能。 10. **负载均衡与熔断机制**:Hystrix或Spring Cloud Netflix Ribbon提供服务之间的负载均衡和...
Maven的核心概念之一是项目对象模型(Project Object Model,POM),这是一个XML文件,包含了项目的配置信息,如项目依赖、构建目标、构建过程等。通过POM,Maven能够自动下载所需的依赖库,避免了手动管理jar文件的...
适用人群:具有一定Java开发经验的技术人员,尤其是熟悉Maven构建工具和Spring框架的开发者。 使用场景及目标:适用于希望深入了解Maven多模块项目架构及其与Spring框架整合机制的学习者;或者是在实际工作中遇到...
在软件开发领域,Maven是一个广泛使用的项目管理和综合工具,主要负责构建、依赖管理和项目信息管理。本示例将深入探讨Maven中的“依赖”、“继承”和“聚合”这三个核心概念,帮助开发者更好地理解和应用Maven。 ...
Maven是Java开发中广泛使用的构建工具,它通过项目对象模型(Project Object Model,POM)来管理项目的构建、报告和依赖关系。"Maven离线依赖包v2"指的是一个包含Maven仓库中多种库的压缩文件集合,主要用于在没有...
【CXF实例一 Maven构建】是一个关于如何使用Maven来构建Apache CXF项目的教程。Apache CXF是一个开源的Java框架,主要用于构建和开发服务导向架构(SOA)的应用程序,它支持多种Web服务标准,如SOAP、RESTful、WS-*...
在IT行业中,Maven是一个非常重要的构建工具,主要用于管理Java项目的构建、报告和依赖关系。在JavaWeb开发中,Maven扮演着核心角色,帮助开发者有效地处理库的依赖关系,使得项目构建过程更加标准化和自动化。本文...
Maven依赖管理是Maven的核心功能之一,它允许开发者声明项目所依赖的库,并自动下载这些库到本地仓库,以便于构建和运行项目。在Maven的项目对象模型(Project Object Model,POM)中,依赖被定义在`<dependencies>`...
在"基于Maven构建的Spring IoC源码实例"中,我们可以学到如何使用Maven搭建Spring项目,并通过Spring IoC实现组件间的依赖注入。以下是这个实例中可能包含的关键知识点: 1. **Maven项目结构**:了解标准的Maven...
4. idea部署Java Web工程 可以通过IDEA的Run/Debug Configurations配置Tomcat或其他应用服务器,将Maven构建的war包部署到服务器上。 5. Maven工程项目结构说明 标准的Maven项目结构包括src/main/java(源代码)、...
POM 是 Maven 中的核心概念,包含了项目的基本信息、构建配置以及依赖关系。Maven 使用约定优于配置的原则,提供了一套标准的项目结构,使得开发者可以更高效地管理项目。 2. Maven 构建流程 Maven 的构建流程主要...
在"Maven构建项目工程"中,我们可以深入了解Maven如何帮助我们快速、简便地创建和管理项目。 首先,创建一个新的Maven项目可以使用`mvn archetype:create`命令。在这个例子中,我们使用了`-DgroupId=org.lzk.ssh`和...
在编译Doris源码时,Maven的`pom.xml`文件是关键,它定义了项目属性、依赖关系、构建目标等。 对于Doris 1.1.3 版本,源码编译的第一步是获取源代码,通常通过Git从官方仓库克隆。接下来,进入源码目录,执行 `mvn ...
在这个项目中,我们将深入理解Maven如何处理项目的依赖关系,以及如何有效地管理这些依赖。 Maven是一个强大的构建工具,尤其在Java开发中广泛应用。它通过使用一个标准的项目对象模型(Project Object Model,POM...