plugin_plugins - CSDN
plugin 订阅
Plugin
信息
操作系统
未知
开发语言
开源协议
未知
Plugin
A jQuery plugin to lazy load other plugins. Small and easy to use. To register a plugin: var plugin = $.plugin.register( url_of_the_file, names_to_register, settings ); or var plugin = new $.plugin( url_of_the_file, names_to_register, settings ); names_to_register is a hash in this form: { $:'foo', fn:['foo','bar'] } That means the plugin will register(once loaded): $.foo, $.fn.foo and $.fn.bar. For now, you can only register to those 2 namespaces. You can use 1 string or an array of names. settings is an optional hash with these options: { cache:boolean, //default is true, use false to avoid caching id:'some_name', //an id for the script, only necessary if another requires it require:[ 'some_name', 'some_other_name' ], //ids of the plugins required sync:boolean //must be loaded sync ? false by default, use it if the call modifies the 'this' } Once a call to the plugin is done, the plugin will be loaded, that call will be taken into account and you can even use chaining with this fake call. so $('a').foo().bar() will work perfectly. The plugin objects have methods( queue, add, check, load, preload, etc ) will explain them soon(sorry). One useful data stored in the object is plugin.url, which contains the src of the plugin. You can use bind/unbind/trigger on the plugin objects, and $.plugin itself for global calls. When a plugin starts loading, the event 'loading' is triggered, it receives the plugin object as 2nd argument. When finally loaded, the event 'loaded' is triggered. Example //registers $.scrollTo and $.fn.scrollTo $.plugin.register('scrollTo.js',{$:'scrollTo', fn:'scrollTo'},{ id:'ST'}); //registers $.localScroll and $.fn.localScroll, needs ScrollTo first $.plugin.register('localScroll.js', {$:'localScroll', fn:'localScroll'},{require:'ST'}); And that's it, you can safely call scrollTo or LocalScroll whenever you want, and then, and only then, the plugin will be requested. Known issues: -Remote scripts cannot be sync (jQuery limitation). -Mixing remote and local plugins in a chain seems to cause problems sometimes.
收起全文
精华内容
参与话题
  • Plugin插件

    2013-08-28 19:08:03
    public class MyPlugin implements PlugIn {  public MyPlugin() { } public void destroy() { System.out.println("MyPlugin is stoping!!!!!!!!!!!!!!!!!!!!!!!!!!"); }  public void init(ActionServlet ...
    public class MyPlugin implements PlugIn {
     public MyPlugin() {
      
     }
     
     public void destroy() {
      System.out.println("MyPlugin is stoping!!!!!!!!!!!!!!!!!!!!!!!!!!");
     }
     public void init(ActionServlet servlet, ModuleConfig config)
       throws ServletException {
      System.out.println("myplugin is staring!!!!!!!!!!!!!!!!!!!!!!!!!!");
      用于系统启动时加载信息
      DBManage.context = servlet.getServletContext();
     }
    }
    <script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/buttonLite.js#style=-1&uuid=&pophcol=3&lang=zh"></script> <script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/bshareC0.js"></script>
    阅读(284) | 评论(0) | 转发(0) |
    给主人留下些什么吧!~~
    评论热议
    展开全文
  • 前言有段日子没写文章了,最近不算很忙,所以搞了搞关于Gradle中Plugin相关的内容。全文主要是以下的内容:Plugin相关的流程简单的写/调试一个Plugin文末依然献上今日份的沙...

    前言

    有段日子没写文章了,最近不算很忙,所以搞了搞关于Gradle中Plugin相关的内容。全文主要是以下的内容:

    • Plugin相关的流程

    • 简单的写/调试一个Plugin

    文末依然献上今日份的沙雕gif

    正文

    一、如何理解Gradle

    Gradle在AndroidStudio时代,作为官方主推的构建工具。我们日常的依赖,打包,编译等等工作都依赖Gradle,而这其中的每一项工作都依赖Task这个概念。

    一个Gradle的构建会分为三个阶段:

    初始化阶段:

    这个阶段做的事情是,根据项目中的buid.gradle文件,转化成对应的Project类。而我们gradle中写的内容,也都Project类中的一些方法或者变量。

    配置阶段:

    这个阶段是基于上个阶段的延续,此阶段会执行build.gradle,而这过程中是要将需要执行的内容转成Task。

    执行阶段:

    此过程则是将前一个过程生成出来的Task进行执行。

    二、简单写一个Plugin

    Plugin的写法有很多,比如:maven依赖、源码直接依赖。今天咱们就以源码的形式来写一个Plugin。

    源码Plugin

    1.1、buildSrc

    首先我们需要了解一个特殊的模块:buildSrc。如果我们的根目录上有这么一个buildSrc子模块,那么Gradle会将其定位插件工程,按插件工程的模式去执行文件。

    在当前工程下创建一个 Java Library 的 module,起名字为 buildSrc。

    这里很多文章会说:将 main/src/java 修改为 main/src/groovy。其实这个没有必要的,现在Plugin对语言的支持比较的宽。Kotlin也是可以的,因此今天的Plugin咱们就是用Kotlin去写。

    1.2、build.gradle

    想要使用Kotlin,gradle少不了配置。我这里直接贴上我的配置:

    apply plugin: 'groovy'
    apply plugin: 'java'
    apply plugin: 'maven'
    apply plugin: 'kotlin'
    sourceCompatibility = "1.8"
    targetCompatibility = "1.8"
    buildscript {
        ext.kotlin_version = '1.3.21'
        repositories {
            google()
            jcenter()
            mavenCentral()
            maven { url 'https://maven.google.com' }
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:3.0.1'
            classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        }
    }
    allprojects {
        repositories {
            google()
            jcenter()
            mavenCentral()
            maven { url 'https://maven.google.com' }
        }
    }
    dependencies {
        implementation gradleApi()
        implementation localGroovy()
    }
    

    当然,这里如果你不需要groovy的支持,也可以自行删除。

    1.3、自定义Plugin

    这里咱们定一个读取文件的Plugin(简单模拟一下日常中读取配置文件的流程)。

    先简单搞个demo的文件:json内容很简单,随便写写。

    {
      "object": [
        {
          "name": "Haha-1",
          "age": 1,
          "title": "~~~~~"
        },
        {
          "name": "Haha-2",
          "age": 2,
          "title": "~~~~~"
        }
      ]
    }
    

    接下来就是咱们的Plugin了,我们只需要继承 Plugin<Project>,然后实现 apply()

    class TestObject {
        @SerializedName("object")
        val objects: List<TestBean>? = null
    }
    data class TestBean(
        @SerializedName("name")
        val name: String? = null,
        @SerializedName("age")
        val age: Int = 0,
        @SerializedName("title")
        val title: String? = null
    )
    class ToolsPlugin : Plugin<Project> {
        override fun apply(target: Project) {
            target.tasks.create("printJson"){
                val jsonStr = File("test/Test.json").readText()
                val testObject = Gson().fromJson(jsonStr, TestObject::class.java)
                testObject.objects?.forEach {
                    println("${it.name}--->${it.age}--->${it.title}")
                }
            }
        }
    }
    

    编写完了Plugin,接下来就是让它能够运行起来。

    1.4、Plugin引导

    我们需要设置一个properties文件,为我们的Plugin做一个“引导”。

    留意这个toolsplugin.properties文件,这个文件名toolsplugin是我们的插件名字,记住它以后会用到。我们的toolsplugin.properties文件内容也很简单,就是指明Plugin的地址:

    implementation-class=com.mdove.plugin.tools.ToolsPlugin
    

    1.5、应用

    走到这一步,一个Plugin就算ok了。接下来我们只需要应用即可,比如在我们的app模块的build.gradle:

    apply plugin: 'toolsplugin'
    

    运行起来是这样的:

    1.6、Debug插件

    因为Plugin是在编译器进行的,因此“传统”的Debug方式没办法断点Plugin。想要断点Plugin需要先添加一个Remote:

    配置内容:

    -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005

    接下我们需要在运行Task的时候加一些参数:

    ./gradlew app:printJson -Dorg.gradle.debug=true。

    尾声

    到此一个简单的Plugin就接近尾声了。Plugin本身没有什么神秘的,说白了就是Android在Gradle上的基础上对外暴露的一些能力...如何理解、如何应用才是Plugin最有力量的内容~

    有兴趣的同学可以继续深入其他框架,通过其他框架的源码来理解Plugin。

    展开全文
  • Plugin ‘org.springframework.boot:spring-boot-maven-plugin:’ not found 用IDEA创建springboot项目的时候遇到的一些坑,记录一下 在pom.xml文件中“spring-boot-maven-plugin” 报红了,显示not found 找不到。 ...

    Plugin ‘org.springframework.boot:spring-boot-maven-plugin:’ not found 用IDEA创建springboot项目的时候遇到的一些坑,记录一下

    在pom.xml文件中“spring-boot-maven-plugin” 报红了,显示not found 找不到。

    <plugin>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-maven-plugin</artifactId>//这行红色
    </plugin>
    

    也在网上看了一些别人的解决方式,最后我通过给spring-boot-maven-plugin指定版本后成功解决。修改后如下:

    <plugin>
    	<groupId>org.springframework.boot</groupId>
    	<artifactId>spring-boot-maven-plugin</artifactId>
    	<version>2.2.6.RELEASE</version>
    </plugin>
    
    展开全文
  • Failure to transfer org.springframework.boot:spring-boot-maven-plugin:pom:1.5.4.RELEASE from https://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted

    错误提示:

    Failure to transfer org.springframework.boot:spring-boot-maven-plugin:pom:1.5.4.RELEASE from https://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced. Original error: Could not transfer artifact
    org.springframework.boot:spring-boot-maven-plugin:pom:1.5.4.RELEASE from/to central (https://repo.maven.apache.org/maven2): repo.maven.apache.org pom.xml

    
    

    ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    原本代码并没出错,但是在导入项目到新环境下后,出现了这种错误。

    发生的问题根本原因 在于 网络环境导致 依赖的包在下载的过程中出现的异常中断,导致引用资源损坏

    解决办法:

    在CMD中 

    cd %userprofile%\.m2\repository
    for /r %i in (*.lastUpdated) do del %i

    然后在eclipse中右键,选择Maven - >“Update Project”,确保勾选“Update Dependencies”,然后点确定


    解决方法原文:

    https://stackoverflow.com/questions/5074063/maven-error-failure-to-transfer

    展开全文
  • 原因是添加依赖时未添加版本号 ...plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <plugin>
  • 解决一些Springboot启动报错问题

    万次阅读 2018-10-11 18:25:09
    项目启动报错比调bug更加难受 概要:近日在学习Springcloud微服务。配置服务注册中心,一切妥妥当当,但还是报了一个让我崩溃的问题:org.springframework.boot.web.server.WebServerException: Unable to start ...
  • QT如何创建和使用Qt Plugins (插件)

    万次阅读 多人点赞 2017-12-21 14:26:49
    对于一个大型软件系统来说,实现plugin是一件很美妙的事情,一个成功的plugin系统可以使软件增色不少。Plugin最大的功能是在一定程度内提高了软件的灵活度和可扩展性。一个设计精良的server软件plugin系统甚至在...
  • MAVEN 设置编译版本时,报错:Plugin 'org.apache.maven.plugins:maven-compiler-plugin:2.3.2' not found 如下图: 配置如下: 二、解决方法: 将JDK版本跟POM文件配置的版本设置为一致: 将POM文件的...
  • 本文转载地址:... Error:(1, 0) Plugin with id 'com.android.application' not found.Open File 这个错误是build.gradle造成的,我们打开文件 打开报错的项目的build.gradle,看看有没...
  • maven-shade-plugin介绍及使用

    万次阅读 2018-06-08 10:29:47
    maven-shade-plugin提供了两大基本功能: 将依赖的jar包打包到当前jar包(常规打包是不会将所依赖jar包打进来的); 对依赖的jar包进行重命名(用于类的隔离); Goals maven-shade-plugin 只存在一个goal ...
  • 使用 clean-webpack-plugin清除/dist文件夹,因为如果不每次都清除的话,会造成dist文件夹的文件不断累计,变得很烦乱,所以一个好的习惯是每次打包时候先清空dist文件夹 安装 clean-webpack-plugin npm install ...
  • 背景:本项目使用JDK...Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1 pom中如下配置maven插件,配置中声明使用JDK1.8: org.apache.maven.plugins maven-compiler-plugin 3
  • mvn clean package -Dmaven.test.skip=true 今天项目用maven命令...Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.7.0:compile (default-compile) on project springbootdemo: Fata...
  • 主要原因是本地maven的配置文件和仓库地址不一致。 参考该博文来配置:https://www.cnblogs.com/phpdragon/p/7216626.html
  • Spring Boot的Maven插件Spring Boot Maven plugin详解

    万次阅读 多人点赞 2019-10-10 10:27:09
    Spring Boot的Maven插件(Spring Boot Maven plugin)能够以Maven的方式为应用提供Spring Boot的支持,即为Spring Boot应用提供了执行Maven操作的可能。 Spring Boot Maven plugin能够将Spring Boot应用打包为可执行...
  • 深入理解maven构建生命周期和各种plugin插件

    万次阅读 多人点赞 2019-11-27 13:22:09
     本博文不会长篇大论的讨论生命周期的概念,而是从各种plugin的实际功能和应用出发,来讨论maven的实际应用,说得通透一点,生命周期(lifecycle)可以理解成由各种plugin按照一定的顺序执行来完成java项目清理、...
  • Chromium的Plugin进程启动过程分析

    万次阅读 2017-01-06 12:26:31
    在Chromium中,还有一类进程是由Browser进程启动的,它们就是Plugin进程。顾名思义,Plugin进程是用来运行浏览器插件的。浏览器插件的作用是扩展网页功能,它们由第三方开发,安全性和稳定性都无法得到保证,因此...
  • 前面几篇文章,我们一起了解了 Plugin 的项目创建和运行效果。接下来我们开始静下心来深入了解插件的内容了。 从 plugin .xml 核心配置文件开始。 更消息的内容,请参考官方文档: ...
  • 在Chromium中,每一个Plugin都对应一个Module,称为Plugin Module。一个Plugin Module可创建多个Plugin Instance。每一个Plugin Instance对应于网页中的一个标签。在为标签创建Plugin Instance之前,先要加载其对应...
  • 在Chromium中,除了可以使用Extension增强浏览器功能,还可以使用Plugin。两者最大区别是前者用JS开发,后者用C/C++开发。这意味着Plugin以Native Code运行,在性能上要优于Extension,适合执行计算密集型工作。不过...
1 2 3 4 5 ... 20
收藏数 643,354
精华内容 257,341
关键字:

plugin