打包WebJar实现对静态资源文件的统一依赖管理

WebJars的发布以及使用

http://www.webjars.org/ 查看详细的使用说明

WebJars是打包到JAR(Java Archive)文件中的客户端Web库(例如jQuery和Bootstrap)。

  • 在基于JVM的Web应用程序中显式轻松地管理客户端依赖项
  • 使用基于JVM的构建工具(例如Maven,Gradle,sbt,...)来下载客户端依赖项
  • 传递依赖关系会自动解析,并可选择通过RequireJS加载

Web前端使用了越来越多的JS或CSS,如jQuery,Backbone.js和Bootstrap。一般情况下,我们是将这些Web资源拷贝到Java Web项目的webapp相应目录下进行管理。这种通过人工方式管理可能会产生版本误差,拷贝版本错误,漏拷等现象,导致前端页面无法正确展示,版本不一致,文件混乱等,导致出现一些莫名其妙的错误等。

WebJars是将web前端资源(js,css等)打成jar包文件,然后借助Maven工具,以jar包形式对web前端资源进行统一依赖管理,保证这些Web资源版本唯一性。WebJars的jar包部署在Maven中央仓库上。

webjar的使用

类似的使用方式:


    
            org.webjars
            jquery
            2.2.4
        
        
            org.webjars
            bootstrap
            3.3.6
        

SpringMVC配置引用


在Servlet3中可简化为:


Java配置

@Configuration
@EnableWebMvc
public class WebConfig extends WebMvcConfigurerAdapter {

  @Override
  public void addResourceHandlers(ResourceHandlerRegistry registry) {
    registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
  }

}

在Servlet 3容器中,registry.addResourceHandler行可以简化为:

registry.addResourceHandler("/webjars/**").addResourceLocations("/webjars/");

使依赖版本不可知

使用Spring Framework 4.2或更高版本时,它将自动检测webjars-locator类路径上的库,并使用它自动为您解析任何WebJar资产的版本。要启用此功能,您需要将webjars-locator库添加为应用程序在pom.xml文件中的依赖项,如:


    
        org.webjars
        webjars-locator
        0.30
    


打包webjar

新建maven项目,在pom.xml中



    4.0.0

    
        org.sonatype.oss
        oss-parent
        7
    

    jar
    org.webjars
    test
    1.0.0-SNAPSHOT
    Test
    WebJar for Test
    http://webjars.org

    
        
            jamesward
            James Ward
            [email protected]
        
    

    
        
            Apache 2.0
            https://github.com/facebook/react/blob/master/LICENSE
            repo
        
    

    
        http://github.com/webjars/react
        scm:git:https://github.com/webjars/react.git
        scm:git:https://github.com/webjars/react.git
        HEAD
    

    
        UTF-8
        
        ${project.build.outputDirectory}/META-INF/resources/webjars/${project.artifactId}/${project.version}
        
            {
                "paths": {
                    "test": "test"
                }
            }
        
    

    
        

            
                org.apache.maven.plugins
                maven-release-plugin
                2.5.3
            

            
                org.apache.maven.plugins
                maven-deploy-plugin
                
                    
                        deploy
                        
                            deploy-file
                        
                        
                            jar
                            true
                            ${project.distributionManagement.repository.url}
                            ${project.artifactId}
                            ${project.groupId}
                            ${project.version}
                            ${project.build.directory}/${project.artifactId}-${project.version}.jar
                        
                    
                
            
        

        
        
            
                ${project.basedir}/src/main/resources
                ${destinationDir}
                true
            
        
    

    
    
        
            release
            http://192.168.0.215:8081/repository/maven-releases/
        

        
            snapshot
            http://192.168.0.215:8081/repository/maven-snapshots/
        
    


在maven的settings.xml中

    
        
            release
            admin
            admin123
         
        
            snapshot
            admin
            admin123
        
    

注意 值对应

运行命令:mvn clean package 打包jar;mvn deploy发布webjar到仓库。




    
    Title

    


    

欢迎

你可能感兴趣的:(打包WebJar实现对静态资源文件的统一依赖管理)