`
Roger111
  • 浏览: 49839 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

maven常用插件--groovy-maven-plugin

 
阅读更多

这个插件在更新到2.0之后改了名字。之前为:

				<groupId>org.codehaus.gmaven</groupId>
				<artifactId>gmaven-plugin</artifactId>
				<version>1.5</version>

 现在为:

                <groupId>org.codehaus.gmaven</groupId>
                <artifactId>groovy-maven-plugin</artifactId>
                <version>2.0</version>

 不过只是改名字而已,用法还是相同的。

 

这个插件的主要目的是能够在maven环境下执行groovy操作,和antrun差不多也分为两种,一种是直接在插件配置里下groovy代码片段,另一种是执行groovy脚本或类。

 

目标:

groovy:execute

 

使用

 

使用1,在source内些groovy脚本

            <plugin>
                <groupId>org.codehaus.gmaven</groupId>
                <artifactId>groovy-maven-plugin</artifactId>
                <version>2.0</version>
               <configuration>
                   <source>
                       println 'i can run groovy within maven!'
                   </source>
               </configuration>
            </plugin>

 使用2,执行hi.groovy

            <plugin>
                <groupId>org.codehaus.gmaven</groupId>
                <artifactId>groovy-maven-plugin</artifactId>
                <version>2.0</version>
               <configuration>
                   <source>${project.basedir}/src/main/groovy/hi.groovy</source>
               </configuration>
            </plugin>

 

内置变量

project 当前maven项目的对象,包含解析的properties。
pom 同project,相当于其别名
session MavenSession对象
settings 对应着settings.xml的对象。
log SLF4J的日志实例
ant antBuilder实例,方便处理ant任务。
fail()
A helper to throw MojoExecutionException
   
   
   

 

使用举例:

可以直接在groovy脚本中使用

ant.echo('i am ant!')
println project.packaging
def servers = settings.servers
for(def server :servers){
    println server.id
}

 

自定义变量

可以通过properties和defaults来自定义变量给脚本用

<properties>
   <target>${project.build.directory}</target>
    <repo>${settings.localRepository}</repo>
     <project>this</project>
 </properties>
 <defaults>
        <name>Roger Wang</name>
</defaults>

 使用的方法都一样,如:

<source>
       println 'Hello ' + properties['name']
</source>

 

 

类的依赖

java的依赖

gmaven可以通过classpathScope参数指定访问maven项目的classpath的范围。

<plugin>
  <groupId>org.codehaus.gmaven</groupId>
  <artifactId>groovy-maven-plugin</artifactId>
  <executions>
    <execution>
      <phase>process-classes</phase>
      <goals>
          <goal>execute</goal>
      </goals>
      <configuration>
        <classpathScope>runtime</classpathScope>
        <source>
          // this script has access to the compiled classes and all depencencies of scope=runtime.
        </source>
      </configuration>
    </execution>
  </executions>
</plugin>

 默认为none表示没有额外的classpath。

tips:

classpathScope选项:

compile 
none 
provided 
runtime 
test 

 可以通过依赖的方式加所需要的class添加到classpath

<plugin>
  <groupId>org.codehaus.gmaven</groupId>
  <artifactId>groovy-maven-plugin</artifactId>
  <dependencies>
    <dependency>
      <groupId>commons-lang</groupId>
      <artifactId>commons-lang</artifactId>
      <version>2.6</version>
    </dependency>
  </dependencies>
</plugin>

 

groovy的依赖

gmaven通过参数scriptpath指定的路径去查找执行groovy文件。

例如你定义了一个名为Helper.groovy的文件在${project.basedir}/src/main/groovy目录下,你可以这样配置来使用它:

<plugin>
  <groupId>org.codehaus.gmaven</groupId>
  <artifactId>groovy-maven-plugin</artifactId>
  <executions>
    <execution>
      <phase>generate-resources</phase>
      <goals>
          <goal>execute</goal>
      </goals>
      <configuration>
        <scriptpath>
          <path>${project.basedir}/src/main/groovy</path>
        </scriptpath>
        <source>
          import Helper
          def h = new Helper()
        </source>
      </configuration>
    </execution>
  </executions>
</plugin>

 

ss

分享到:
评论

相关推荐

    maven-compiler-plugin-3.8.0-source-release插件

    对于大型项目,推荐使用 Maven 的私有仓库来存储常用插件,以提高构建速度。 ** 总结** `maven-compiler-plugin-3.8.0-source-release` 是 Maven 生态系统中不可或缺的一部分,它提供了可靠的源代码编译功能,使得...

    android-maven-gradle-plugin,与android库项目兼容的gradle的maven插件.zip

    《Android Maven Gradle 插件:与Android库项目兼容的构建工具详解》 在Android开发领域,构建工具的不断更新迭代对于开发者来说既是机遇也是挑战。Android Maven Gradle 插件,作为Android库项目与Maven集成的重要...

    dropwizard-debpkg-maven-plugin-0.4.zip

    在`dropwizard-debpkg-maven-plugin-0.4.zip`的压缩文件中,尽管未提供具体的源代码或文档,但我们可以推断这个版本的插件应该包含了插件的Java源码、测试用例、Maven配置文件等资源,供开发者学习和使用。...

    android-maven-gradle-plugin:弃。 现在由android build插件支持

    在过去的几年中,Android开发社区经历了从Maven到Gradle的重大转变,其中`android-maven-gradle-plugin`是一个曾经广泛使用的插件,但现在已经被官方弃用。 `android-maven-gradle-plugin`是由Wojciech Ziniewicz...

    apache-maven-3.6.0-bin.rar

    例如,可以使用maven-compiler-plugin进行Java代码的编译,maven-surefire-plugin执行单元测试,maven-jar-plugin打包项目为JAR文件。 4. **标准目录结构**:Maven提倡一种标准的项目目录结构,使得不同项目之间...

    lenskit-eval-maven-plugin-2.0.3.1.zip

    "lenskit-eval-maven-plugin-2.0.3.1"通过Maven插件体系扩展了Maven的功能,使得开发者无需离开熟悉的Maven环境就能完成推荐系统实验的全部流程,极大地提高了开发效率。 其次,"composite-logging-deploy"是一个...

    SpringBoot-Gradle-Maven-Java-Groovy

    - Maven同样有对应的SpringBoot插件,`spring-boot-maven-plugin`,能够帮助打包可执行的jar或war文件,实现快速启动。 总的来说,SpringBoot简化了基于Spring的应用开发,而Gradle和Maven则提供了构建工具层面的...

    environments-maven-plugin-0.0.17.zip

    本文将深入探讨一个开源项目——`environments-maven-plugin-0.0.17.zip`,以及其中包含的`gradle-executable-jar-plugin`,这是一个专门用于创建可执行JAR的Gradle插件。这个插件使得开发者能够轻松地构建一个包含...

    maven-plugin-development:用于构建Apache Maven插件的Gradle插件

    `maven-plugin-development` 插件的目标是简化Maven插件的开发流程,使得使用Gradle的开发者能够更便捷地构建、测试和发布Maven插件。这个插件结合了Gradle的强大功能和Maven的插件体系,使得两者的优势得以互补。 ...

    gradle-maven-plugin:Gradle 5.x Maven发布插件来部署工件

    Gradle-Maven-Plugin是专门为Gradle 5.x版本设计的一个插件,它允许开发者使用Gradle构建系统来模拟Maven的发布流程,将工件部署到Maven仓库。这个插件对于那些同时使用Gradle和Maven的项目尤其有用,因为它实现了...

    gradle-maven-exec-plugin:Gradle插件,提供Maven exec任务

    提供Maven执行任务的Gradle插件 正在安装 此插件的发行版托管在。 使用以下两种方法之一将插件应用于您的项目。 在所有Gradle版本中使用的构建脚本代码段: buildscript { repositories { maven { url " ...

    GMavenPlus:重写GMaven,Groovy的Maven插件

    GMavenPlus插件是针对Groovy语言的Maven构建工具的增强版本,它是对原生GMaven的重写,旨在提供更强大、更灵活的功能。这个插件的主要目的是使开发者能够在Maven项目中无缝地使用Groovy代码,扩展了Maven的构建能力...

    android-maven-publish:对标准Maven Publish插件的修改,使其与android-library项目兼容(aar)

    5. **Groovy DSL支持**:插件使用Groovy DSL编写构建脚本,使得配置更加灵活且易于阅读。 6. **版本控制**:你可以方便地管理发布的版本,如设置版本号、预发布版本等。 7. **发布流程控制**:你可以自定义发布...

    pipeline-maven-plugin:管道maven插件

    Pipeline Maven Plugin是Jenkins的一个插件,它允许开发者通过Maven构建生命周期来创建强大的、声明式的持续集成和交付管道。 ### Maven与Pipeline的结合 Apache Maven是一个项目管理和综合工具,它简化了Java项目...

    Jenkins常用插件大全jenkins-plugin-war.tar.gz

    "Jenkins常用插件大全jenkins-plugin-war.tar.gz"这个压缩包文件很可能包含了多个在生产环境中常用的Jenkins插件,使得用户可以快速配置出满足需求的Jenkins环境。 1. **Jenkins插件系统**:Jenkins的插件系统是其...

    micronaut-maven-plugin:执行Micronaut应用程序的Maven插件

    Micronaut Maven插件 Maven插件,用于执行Micronaut应用程序。 文献资料 有关更多信息,请参见。 有关当前开发文档,请参见文档。 要查看特定版本的文档,请用版本字符串替换上述URL中的latest或snapshot 。 快照...

    yeoman-gradle-plugin:Gradle 插件就像 yeoman-maven-plugin

    查看 [yeoman-gradle-plugin-example] 说明:查看 [yeoman-gradle-plugin-example]。 执行 gradle jettyEclipseRun 如果它坏了,请告诉我:) ##Usage 将插件应用到您的 gradle 构建: buildscript { repositories { ...

    lombok-plugin-0.34.1-2019.1.zip

    在本压缩包 "lombok-plugin-0.34.1-2019.1.zip" 中,"lombok-plugin" 文件可能是 Lombok 的 IntelliJ IDEA 插件,这个插件使得开发者在 IDEA 编辑器中可以实时预览和处理 Lombok 注解的效果,提供更好的开发体验。...

    groovy+maven+spring

    同时,Maven可以管理这些远程脚本作为项目的资源,通过配置maven-resources-plugin插件,将远程脚本下载到本地构建路径,以便Spring能够正确加载。 在实际操作中,我们需要在POM.xml文件中配置maven-resources-...

    jbake-maven-plugin:JBake Maven插件

    【jbake-maven-plugin-master】这个压缩包文件很可能是JBake Maven插件的源代码仓库,里面可能包含了插件的实现、示例配置以及相关文档。如果你想深入了解插件的内部工作原理或对其进行定制,可以查看并编译这些源...

Global site tag (gtag.js) - Google Analytics