`
lp895876294
  • 浏览: 285427 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

MAVEN公共WEB资源依赖

 
阅读更多

      问题产生场景:多个不同的业务系统使用公共的JS文件和核心的业务JS文件,每创建一个web项目就需要将这些文件都拷贝到每个项目中去,如果修改了任何一个JS文件就需要更新使用这个JS文件的系统,效率非常低下,所以考虑用maven管理jar包一样管理公共Web资源。

       实现目标:每个业务系统能正常访问统一的Web资源,业务系统在相同文件目录下存在相同文件,则业务系统文件覆盖掉公共库中的文件;在开发过程中修改公共库的Web资源能够实时发布到业务系统项目中去。

配置方式如下:

  • 公共库packaging类型由原来的jar改为war,如下:
<groupId>com.projects</groupId>
<artifactId>projects-common</artifactId>
<version>${projects.version}</version>
<packaging>war</packaging>
  •  使用maven-war-plugin进行打包,通过配置项打包公共库,分别打出war包和jar包,不影响现有项目对公共库jar包的依赖。

 

<build>
	  <plugins>
	   <plugin>
		    <groupId>org.apache.maven.plugins</groupId>
		    <artifactId>maven-war-plugin</artifactId>
		    <version>2.4</version>
		    <configuration>
		    	<!-- 把class打包jar作为附件 -->
		    	<attachClasses>true</attachClasses>
		    	<!-- 把class打包jar -->
		      	<archiveClasses>true</archiveClasses>
		      	<failOnMissingWebXml>false</failOnMissingWebXml>
		    </configuration>
	   </plugin>
	  </plugins>
 	</build>
  • 在项目中添加对公共库的war包依赖,由于在项目的父pom文件中已经引入了maven-war-plugin插件,所以不再单独引入。
<dependency>
			<groupId>com.projects</groupId>
			<artifactId>projects-common</artifactId>
			<version>${projects.version}</version>
		</dependency>
		<dependency>
			<groupId>com.projects</groupId>
			<artifactId>projects-common</artifactId>
			<version>${projects.version}</version>
			<type>war</type>
		</dependency>

 总结:这种方式有一定的局限性,如果只引用了jar包,则无法解析jar包的pom依赖。所以还是最终决定将jar和war资源分为两个不同的公共包,在需要的项目中分别引用。

分享到:
评论

相关推荐

    SpringBoot+maven构建Web项目(Maven父子工程)

    在IT行业中,SpringBoot和Maven是两个非常重要的工具,它们在构建Web应用程序时起着核心作用。SpringBoot简化了Spring框架的配置,...结合SpringBoot的自动化配置和Maven的依赖管理,可以打造出健壮、易维护的Web应用。

    maven依赖包(用于博客项目)

    本资源“maven依赖包(用于博客项目)”显然包含了一系列与博客项目相关的Maven依赖,这些依赖可能包括数据库连接库、模板引擎、日志框架、安全组件以及其他有助于构建博客平台的Java库。 1. **Maven仓库**: ...

    Maven2资源和配置下载

    总的来说,Maven2资源和配置下载涉及到了项目构建、依赖管理、MyEclipse的Maven集成以及私有仓库的搭建与使用。了解这些知识点对于提升Java开发效率、优化团队协作流程至关重要。正确配置和使用Maven能够大大简化...

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

    Maven私服简介 私服是内部使用的Maven仓库,用于存储企业内部的库,减少对外部公共仓库的依赖。 2. Nexus下载安装 下载Nexus,按照官方文档配置和启动服务。 3. 初始设置 配置Nexus的用户、角色、仓库等基本信息...

    使用Maven开发Java Web应用

    2. **安装Nexus服务**:下载Nexus并设置为服务,通过配置管理公共库,如Central库,确保能获取远程Maven仓库的资源。 3. **配置Maven**:创建`settings.xml`文件,指定本地仓库路径,设置Nexus服务器的认证信息,...

    maven-helloworld-web.rar

    远程仓库是开发者共享和获取依赖的地方,它可以是公司的内部仓库或者公共的Maven中央仓库。下面是一些关于创建远程仓库的要点: 1. **配置settings.xml**:在用户的Maven配置文件(`~/.maven/settings.xml`)中,你...

    maven打包出错解决办法,亲测绝对可以!

    1. **为什么要搭建Maven私服**:企业内部项目通常有私有的依赖库,直接连接外部公共仓库会增加网络延迟,且可能涉及安全问题。搭建Maven私服可以作为中间层,缓存公共依赖,同时托管内部私有库。 2. **Nexus作为...

    ssm+maven多模块web项目

    在"ssm+maven多模块web项目"中,Maven负责项目的构建流程,自动下载和管理所需的依赖库,同时也提供了多模块项目的构建支持,使得每个模块可以独立开发和测试。 项目结构通常会包含以下模块: 1. parent:父模块,...

    apache-maven-3.6.3.zip

    例如,`maven-jar-plugin`用于创建JAR文件,`maven-war-plugin`则用于Web应用程序的打包。开发者可以通过配置插件参数来自定义构建过程。 Maven还支持多模块项目,即一个父项目下可以包含多个子项目,每个子项目有...

    web开发依赖包

    在Web开发过程中,依赖包是不可或缺的部分...在实际项目中,这些JAR包通常会被整合到构建工具(如Maven或Gradle)的依赖管理中,以便于版本控制和构建过程。同时,理解每个JAR包的作用对于调试和优化代码性能至关重要。

    java方面的maven资料

    在本例中,`user-core`可能包含了项目的公共核心模块,`user-web`可能是Web应用部分,`user-service`可能是业务逻辑层,而`user-log`可能是日志处理模块。 2. **Maven的POM.xml**: 每个Maven项目都有一个POM.xml...

    maven项目pom.xml中parent标签的使用.docx

    在 Maven 项目中,依赖管理是指项目中所需的 jar 包或其他资源的管理。Maven 项目使用 pom.xml 文件来管理依赖关系。pom.xml 文件中可以定义项目的依赖关系,以便在编译、测试和打包时正确地依赖相关的 jar 包。 ...

    maven多模块项目

    例如,一个典型的电商项目可能包含以下几个模块:`parent`(父模块),`common`(公共模块,包含共享的代码和配置),`service`(业务逻辑模块),`dao`(数据访问模块),`web`(Web前端模块)。 在`parent`模块的...

    Java maven 框架

    Maven使用中央仓库来存储公共的开源库,同时也支持自定义的私有仓库,如Nexus或Artifactory,以便于企业内部的依赖管理。 9. Maven的命令行接口: Maven提供了丰富的命令行选项,如`mvn help:effective-pom`显示...

    maven多模块项目(简单实例)

    4. **Web应用模块(Webapp Module)**:包含Spring MVC的配置和视图,以及可能的Web资源。它依赖于服务模块,处理HTTP请求并调用业务逻辑。 在设置好模块关系后,Maven可以通过`mvn install`命令自底向上编译、测试...

    Maven实战Maven教程

    - **Web项目与自动化部署**:对于Web项目,Maven提供了特定的插件,如war插件,可以将项目打包成war文件,并自动化部署到应用服务器。 - **自动化版本管理**:Maven支持版本的自动化管理,如自动生成版本号,便于...

    Maven权威指南

    - **Maven依赖管理**:通过POM文件中的 `&lt;dependencies&gt;` 节点管理项目的依赖关系。 - **站点生成和报告**:Maven可以通过站点插件自动生成项目的文档和报告。 **4. 定制一个Maven项目** - **4.1 定义...

    apache-maven-3.2.5-bin

    - **中央仓库**: Maven官方维护的公共仓库,存放了大量的开源Java组件。 - **私有仓库**: 企业内部使用的仓库,用于存储公司内部的组件或不公开的依赖。 **5. Maven的插件** - **maven-compiler-plugin**: 负责编译...

    maven私服教程.zip

    Maven的私服,即Nexus或Artifactory等,是企业内部的一个私有仓库,用于存储和管理组织内部的JAR和其他依赖库,避免了频繁从公共Maven中央仓库下载,提高了开发效率和网络稳定性。 本教程将详细介绍如何搭建和使用...

    eclipse 创建maven项目 选择 archetypes所用到的jar包

    当你选择这个Archetype时,Eclipse会生成一个包含标准Web应用目录结构的项目,如`src/main/webapp`,其中包含了Servlets、JSPs和其他Web资源。此外,它还包含了一个简单的`web.xml`部署描述符,用于配置应用服务器。...

Global site tag (gtag.js) - Google Analytics