`

Maven构建之依赖关系

阅读更多
上一节建立了两个项目,依赖关系是由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如何处理多项目依赖关系,并结合标签“源码”和“工具”,探讨其在实际开发中的应用。 一、Maven项目结构与POM....

    添加非托管到Maven项目依赖关系.doc

    "Maven 项目依赖关系管理" Maven 项目依赖关系管理是 Java 应用程序开发中非常重要的一步。Maven 是一种流行的项目管理工具,可以帮助开发者快速构建和管理项目。然而,在实际开发中,我们常常会遇到一些不可以在...

    使用Maven构建多模块项目

    Maven构建多模块项目极大地简化了大型项目的管理,通过合理地组织模块间的依赖关系和统一的配置管理,提高了开发效率和代码质量。实践中,需要灵活运用Maven的各种特性,结合最佳实践,以构建高效、稳定的多模块...

    maven依赖关系

    该资源包含了一个maven的依赖关系的源代吗,包含了给予maven构建的hibernate添加数据的源码,喜欢的下载

    maven 中引入依赖的包

    在Java开发领域,Maven是一个不可或缺的构建工具,它通过管理项目依赖关系,简化了项目的构建、测试和部署过程。本文将深入探讨如何在Maven项目中引入依赖的包,并结合相关源码和工具,帮助开发者更好地理解和使用这...

    Maven 构建 Kettle 时所需的部分jar包

    在使用Maven构建Kettle项目时,我们需要确保正确配置Maven的POM.xml文件,以包含所有必要的依赖项,这些依赖项通常是以jar包的形式存在。"Kettle Maven jar"标签提示我们,这里涉及的是Kettle与Maven结合使用时所需...

    Maven构建的分布式demo

    比如,Eureka或Zookeeper可以帮助服务自动注册和发现,Maven构建的服务可以通过添加对应的客户端依赖来实现这一功能。 10. **负载均衡与熔断机制**:Hystrix或Spring Cloud Netflix Ribbon提供服务之间的负载均衡和...

    maven_package 依赖包(完整)

    Maven的核心概念之一是项目对象模型(Project Object Model,POM),这是一个XML文件,包含了项目的配置信息,如项目依赖、构建目标、构建过程等。通过POM,Maven能够自动下载所需的依赖库,避免了手动管理jar文件的...

    Maven项目间依赖构建

    适用人群:具有一定Java开发经验的技术人员,尤其是熟悉Maven构建工具和Spring框架的开发者。 使用场景及目标:适用于希望深入了解Maven多模块项目架构及其与Spring框架整合机制的学习者;或者是在实际工作中遇到...

    maven依赖+继承+聚合

    在软件开发领域,Maven是一个广泛使用的项目管理和综合工具,主要负责构建、依赖管理和项目信息管理。本示例将深入探讨Maven中的“依赖”、“继承”和“聚合”这三个核心概念,帮助开发者更好地理解和应用Maven。 ...

    Maven离线依赖包v2

    Maven是Java开发中广泛使用的构建工具,它通过项目对象模型(Project Object Model,POM)来管理项目的构建、报告和依赖关系。"Maven离线依赖包v2"指的是一个包含Maven仓库中多种库的压缩文件集合,主要用于在没有...

    CXF实例一 Maven构建

    【CXF实例一 Maven构建】是一个关于如何使用Maven来构建Apache CXF项目的教程。Apache CXF是一个开源的Java框架,主要用于构建和开发服务导向架构(SOA)的应用程序,它支持多种Web服务标准,如SOAP、RESTful、WS-*...

    Maven本地仓库依赖环境

    在IT行业中,Maven是一个非常重要的构建工具,主要用于管理Java项目的构建、报告和依赖关系。在JavaWeb开发中,Maven扮演着核心角色,帮助开发者有效地处理库的依赖关系,使得项目构建过程更加标准化和自动化。本文...

    maven依赖小例子

    Maven依赖管理是Maven的核心功能之一,它允许开发者声明项目所依赖的库,并自动下载这些库到本地仓库,以便于构建和运行项目。在Maven的项目对象模型(Project Object Model,POM)中,依赖被定义在`&lt;dependencies&gt;`...

    基于Maven构建的Spring IoC源码实例

    在"基于Maven构建的Spring IoC源码实例"中,我们可以学到如何使用Maven搭建Spring项目,并通过Spring IoC实现组件间的依赖注入。以下是这个实例中可能包含的关键知识点: 1. **Maven项目结构**:了解标准的Maven...

    Maven依赖管理项目构建工具.pdf

    4. idea部署Java Web工程 可以通过IDEA的Run/Debug Configurations配置Tomcat或其他应用服务器,将Maven构建的war包部署到服务器上。 5. Maven工程项目结构说明 标准的Maven项目结构包括src/main/java(源代码)、...

    maven构建的java项目demo

    POM 是 Maven 中的核心概念,包含了项目的基本信息、构建配置以及依赖关系。Maven 使用约定优于配置的原则,提供了一套标准的项目结构,使得开发者可以更高效地管理项目。 2. Maven 构建流程 Maven 的构建流程主要...

    maven构建项目工程

    在"Maven构建项目工程"中,我们可以深入了解Maven如何帮助我们快速、简便地创建和管理项目。 首先,创建一个新的Maven项目可以使用`mvn archetype:create`命令。在这个例子中,我们使用了`-DgroupId=org.lzk.ssh`和...

    doris-1.1.3源码编译broker-maven依赖包repository

    在编译Doris源码时,Maven的`pom.xml`文件是关键,它定义了项目属性、依赖关系、构建目标等。 对于Doris 1.1.3 版本,源码编译的第一步是获取源代码,通常通过Git从官方仓库克隆。接下来,进入源码目录,执行 `mvn ...

    Maven的依赖验证项目

    在这个项目中,我们将深入理解Maven如何处理项目的依赖关系,以及如何有效地管理这些依赖。 Maven是一个强大的构建工具,尤其在Java开发中广泛应用。它通过使用一个标准的项目对象模型(Project Object Model,POM...

Global site tag (gtag.js) - Google Analytics