`
aimer311
  • 浏览: 96441 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

多个工程中,关于公共资源【js,css】等版本控制的问题

    博客分类:
  • java
阅读更多
    目前有个公共资源的resource project,其他工程需要的资源文件都是从该工程引用的,这就涉及到多个工程引用不同版本的资源文件的问题。我们知道对于java工程,引用不同的jar文件就可以,而resource工程就是个难题。
比如A和B工程都需要引用resource工程,有时候更新了resource,这时候只想升级A工程,B工程可能因为另外的原因不想升级,那么B工程需要引用旧的版本的resource资源。这几个工程的引用关系如何管理?
我们目前使用maven进行项目管理,要解决上面的问题我觉得需要解决以下几个问题:
1、resource工程能自动发布,maven已经实现 ok
2、在A工程能够引用特定的resource版本
<dependency>  
   <groupId>com.resource</groupId>  
   <artifactId>resource-webapp</artifactId>  
   <version>20120424.1</version>  
   <type>war</type>  
   <scope>runtime</scope>  
</dependency> 
 

这个引用方式的实际意义不是我想要的,maven好像是吧resource工程的内容拷贝到了A工程,常见第四点的说明
3、使用eclipse javaee版开发时接使用上面的resource版本,为了开发上面的方便。
  比如部署server的时候不能直接引入resource工程(这样使用的是最新版本),而应该是带有某个版本号的war文件
4、打包A工程时直接打包resource的特定版本的文件
我看了下使用maven打包A工程后的war文件,其实是把resource工程的文件复制到了A工程的war文件,但是这个不是我想要的,我们还是要分开打包,两个工程还是独立部署的。资源文件你可能想部署在另外的服务器上

任何意见都非常感谢


补充:
现在想到针对可能引起版本冲突,或者因为版本升级带来的其他项目的问题,目前主要是因为js升级引起的,所以想对js进行特殊处理。
具体处理:
把指定版本的js拷贝到具体的项目中,具体的项目使用这些拷贝到js。打包的时候也是打包到具体的项目中。

1、使用这个依赖关系
<dependency>  
   <groupId>com.resource</groupId>  
   <artifactId>resource-webapp</artifactId>  
   <version>20120424.1</version>  
   <type>war</type>  
   <scope>runtime</scope>  
</dependency> 
 
2、然后在maven-war-plugin中设置只拷贝js文件。具体如下:
              <!-- 配置打包js工程的文件,目前只需要js目录下的文件而已 -->
             
<overlay>
		                <groupId>com.resource</groupId>
		                <artifactId>resource-webapp</artifactId>
		                <includes>
		                  <include>js/**</include>
		                </includes>
		              </overlay>
		            </overlays>	

但是目前还有个问题。这样配置只是在打包的时候才拷贝过去,而对于开发阶段也是一个不方便的地方。我希望在开发阶段也拷贝过去(想想jar就是这样的),就是说当我配置了dependency后,maven就自动把相关的文件拷贝到引用的工程里边。

不知道有没有这样的可能,或者得自己写个插件?
分享到:
评论
1 楼 lirui_andy 2014-03-26  
Hi, 两年后的今天我也遇到类似问题, 百度把我引到你这里来了.

想知道您的最终方案.

我现在的情况是, 有N个web工程(A,B,C), 每个工程中有自己独有的css/js, 但整个site下又有公用的css/js. 现在没有好的解决办法.

我想到的方案是, 单独创建resource web工程, 为其设置独立的二级域名(如res.d.com) 其它A/B/C都有自己的二级域名. 这样,A/B/C 工程页面中使用res.d.com引用js/css. 这样我觉得实际部署的时候不会有问题, 也能实现resource单独部署的目标.  复杂点的就是开发环境也得安装类似nginx的代理,并且进行相应配置.

相关推荐

    JS、CSS合并压缩工具说明

    JS、CSS 合并压缩工具是用于优化前端资源加载效率的重要工具,它们能够将多个 JavaScript 和 CSS 文件合并为一个文件,并进行压缩,减少网络请求次数,从而提高网页加载速度。本篇将详细介绍名为 TomsTools 的一套 ...

    htmlcssjs转换

    如果项目中使用了ES6的模块系统(import/export),可以利用Webpack或Rollup等模块打包工具,将多个JS文件合并成一个或几个文件,实现代码分割和按需加载,提升性能。 6. **自动化工作流**: 自动化工具如Gulp、...

    JAVA公共资源模块的设计与开发源码.rar

    5. **静态资源服务**:在Web应用中,公共资源模块可能包含一个静态资源服务器,用于处理CSS、JavaScript和图片等。Spring Boot的Spring Resource Handling提供了一种内置的方式处理静态资源。 6. **国际化与本地化*...

    bootstrap_css_js_fonts

    这个压缩包"bootstrap_css_js_fonts"包含了Bootstrap的核心元素,主要包括CSS样式表、JavaScript文件以及字体资源。 首先,我们来看看CSS部分。Bootstrap的CSS文件是框架的核心,它们定义了各种UI组件的样式,如...

    vue element 项目默认css文件 style

    同时,将全局样式放在一个单独的文件中,有利于维护和组织代码,避免在多个组件之间重复编写相同的样式规则。 总的来说,Vue Element项目中的`styles`文件是项目样式管理的核心部分,它负责存储和管理全局样式,...

    eclipse css插件

    2. **错误检查和警告**:在编写CSS时,插件会实时检测代码中的错误和潜在问题,如无效的选择器、未定义的属性等,并给出相应的警告或错误提示,帮助开发者及时发现并修复问题。 3. **CSS预览**:一个强大的CSS插件...

    JAVA公共资源模块的设计与开发(源代码+论文).zip

    公共资源模块通常指的是那些在多个组件或服务之间共享的类库、配置文件、模板、静态资源等。这些资源可能包括但不限于:数据库连接池、日志系统、国际化文本、图片、CSS和JavaScript文件等。设计一个有效的公共资源...

    css常见问题解决办法

    本资源包集合了作者在实践中遇到的一些常见问题及其解决方案,主要关注HTML页面、浏览器兼容性、JavaScript以及CSS样式的应用。以下将对这些知识点进行详细阐述。 1. **浏览器兼容性问题**:由于不同的浏览器对CSS...

    基于廖老师的公共库的JavaScript、Java、HTML、CSS、Shell多语言设计源码

    本项目汇聚了廖老师精心打造的公共库多语言设计源码,涵盖JavaScript、Java、HTML、CSS和Shell等语言,共计403个文件,包括88个JavaScript文件、87个PNG图像文件、59个Java源文件、45个GIF图像文件、37个HTML文件、...

    JAVA公共资源模块的设计与开发(源代码).rar

    在Java编程领域,公共资源模块的设计与开发是软件工程中至关重要的一部分。这个压缩包"JAVA公共资源模块的设计与开发(源代码).rar"包含了相关的源代码和可能的论文文档,旨在提供一个学习和实践的平台,帮助开发者...

    传奇竞技游戏类网站模板,html+css+JavaScript+php

    9. public:公共资源目录,通常存放CSS、JavaScript、图片等可被浏览器直接访问的静态文件。 10. core:网站的核心组件或库,包含基础的PHP类和函数,支持网站的正常运行。 综上所述,这个传奇竞技游戏类网站模板是...

    基于axml acss js构建的校园功能性支付宝小程序alipay-baitu-master.zip

    【标题】中的“基于axml、acss、js构建的校园功能性支付宝小程序”是指使用阿里巴巴提供的支付宝小程序开发框架,利用axml(Alipay XML)、acss(Alipay CSS)和JavaScript这三种技术来开发适用于校园生活场景的应用...

    详解webpack 入门总结和实践(按需异步加载,css单独打包,生成多个入口文件)

    `css-loader`处理CSS中的URL引用,而`style-loader`将CSS转换为JavaScript,使其能在浏览器中运行。 8. **图片处理**: `url-loader`用于处理图片,它可以根据配置决定是否将小图片转换为base64编码内嵌到代码中,...

    CSS换肤标准与实现

    2. **用户更换皮肤时**:通过JS控制,切换到用户选择的新CSS样式表,并将用户的偏好更新到Cookie或sessionStorage中以便下次访问时使用。 #### 工作流程 1. 用户访问网页。 2. JS读取Cookie或sessionStorage中的...

    1号店完整代码_js代码_一号店代码_京东1号店_

    【标题】"1号店完整代码_js代码_一号店代码_京东1号店"涉及到的是一个电子商务网站的前端实现,特别关注的是JavaScript(JS)在其中的应用,这是一门广泛用于网页动态效果和交互功能的编程语言。1号店是中国知名的...

    Aleph.js的网站。_TypeScript_CSS_下载.zip

    2. **React组件**: Aleph.js基于React,所以源码中会有多个React组件,每个组件负责页面的一部分功能或视图。 3. **路由配置**:网站的导航和URL映射可能在单独的路由配置文件中定义。 4. **数据和API**:如果网站...

    webpack前端多页项目工程适用于展示型站点比如官网

    它允许开发者将JavaScript、CSS、图片等资源组织成模块,并将它们打包成优化过的静态资源,以便于部署到Web服务器上。在这个名为"webpack-multi-page-master"的项目中,我们将深入探讨如何使用Webpack来构建一个多...

    前端公共资源学习vue

    【前端公共资源学习Vue】 在前端开发领域,Vue.js是一个非常受欢迎的JavaScript框架,以其轻量级、易上手和灵活性而备受赞誉。本资源包主要针对想要深入学习Vue.js的开发者,通过`index.html`和`favicon.ico`这两个...

    unpkg_Node.js_nodejscdn_javascript_CDN_

    - CDN 是一种分布式网络服务,通过将静态内容(如 JavaScript 文件、CSS、图片等)缓存到全球各地的多个服务器上,来提高网站加载速度和用户体验。 - 当用户请求网站资源时,CDN 会自动将请求路由到最近的缓存...

Global site tag (gtag.js) - Google Analytics