这个插件在更新到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 的私有仓库来存储常用插件,以提高构建速度。 ** 总结** `maven-compiler-plugin-3.8.0-source-release` 是 Maven 生态系统中不可或缺的一部分,它提供了可靠的源代码编译功能,使得...
《Android Maven Gradle 插件:与Android库项目兼容的构建工具详解》 在Android开发领域,构建工具的不断更新迭代对于开发者来说既是机遇也是挑战。Android Maven Gradle 插件,作为Android库项目与Maven集成的重要...
在`dropwizard-debpkg-maven-plugin-0.4.zip`的压缩文件中,尽管未提供具体的源代码或文档,但我们可以推断这个版本的插件应该包含了插件的Java源码、测试用例、Maven配置文件等资源,供开发者学习和使用。...
在过去的几年中,Android开发社区经历了从Maven到Gradle的重大转变,其中`android-maven-gradle-plugin`是一个曾经广泛使用的插件,但现在已经被官方弃用。 `android-maven-gradle-plugin`是由Wojciech Ziniewicz...
例如,可以使用maven-compiler-plugin进行Java代码的编译,maven-surefire-plugin执行单元测试,maven-jar-plugin打包项目为JAR文件。 4. **标准目录结构**:Maven提倡一种标准的项目目录结构,使得不同项目之间...
"lenskit-eval-maven-plugin-2.0.3.1"通过Maven插件体系扩展了Maven的功能,使得开发者无需离开熟悉的Maven环境就能完成推荐系统实验的全部流程,极大地提高了开发效率。 其次,"composite-logging-deploy"是一个...
- Maven同样有对应的SpringBoot插件,`spring-boot-maven-plugin`,能够帮助打包可执行的jar或war文件,实现快速启动。 总的来说,SpringBoot简化了基于Spring的应用开发,而Gradle和Maven则提供了构建工具层面的...
本文将深入探讨一个开源项目——`environments-maven-plugin-0.0.17.zip`,以及其中包含的`gradle-executable-jar-plugin`,这是一个专门用于创建可执行JAR的Gradle插件。这个插件使得开发者能够轻松地构建一个包含...
`maven-plugin-development` 插件的目标是简化Maven插件的开发流程,使得使用Gradle的开发者能够更便捷地构建、测试和发布Maven插件。这个插件结合了Gradle的强大功能和Maven的插件体系,使得两者的优势得以互补。 ...
Gradle-Maven-Plugin是专门为Gradle 5.x版本设计的一个插件,它允许开发者使用Gradle构建系统来模拟Maven的发布流程,将工件部署到Maven仓库。这个插件对于那些同时使用Gradle和Maven的项目尤其有用,因为它实现了...
提供Maven执行任务的Gradle插件 正在安装 此插件的发行版托管在。 使用以下两种方法之一将插件应用于您的项目。 在所有Gradle版本中使用的构建脚本代码段: buildscript { repositories { maven { url " ...
GMavenPlus插件是针对Groovy语言的Maven构建工具的增强版本,它是对原生GMaven的重写,旨在提供更强大、更灵活的功能。这个插件的主要目的是使开发者能够在Maven项目中无缝地使用Groovy代码,扩展了Maven的构建能力...
"Jenkins常用插件大全jenkins-plugin-war.tar.gz"这个压缩包文件很可能包含了多个在生产环境中常用的Jenkins插件,使得用户可以快速配置出满足需求的Jenkins环境。 1. **Jenkins插件系统**:Jenkins的插件系统是其...
Micronaut Maven插件 Maven插件,用于执行Micronaut应用程序。 文献资料 有关更多信息,请参见。 有关当前开发文档,请参见文档。 要查看特定版本的文档,请用版本字符串替换上述URL中的latest或snapshot 。 快照...
查看 [yeoman-gradle-plugin-example] 说明:查看 [yeoman-gradle-plugin-example]。 执行 gradle jettyEclipseRun 如果它坏了,请告诉我:) ##Usage 将插件应用到您的 gradle 构建: buildscript { repositories { ...
在本压缩包 "lombok-plugin-0.34.1-2019.1.zip" 中,"lombok-plugin" 文件可能是 Lombok 的 IntelliJ IDEA 插件,这个插件使得开发者在 IDEA 编辑器中可以实时预览和处理 Lombok 注解的效果,提供更好的开发体验。...
Pipeline Maven Plugin是Jenkins的一个插件,它允许开发者通过Maven构建生命周期来创建强大的、声明式的持续集成和交付管道。 ### Maven与Pipeline的结合 Apache Maven是一个项目管理和综合工具,它简化了Java项目...
同时,Maven可以管理这些远程脚本作为项目的资源,通过配置maven-resources-plugin插件,将远程脚本下载到本地构建路径,以便Spring能够正确加载。 在实际操作中,我们需要在POM.xml文件中配置maven-resources-...
【jbake-maven-plugin-master】这个压缩包文件很可能是JBake Maven插件的源代码仓库,里面可能包含了插件的实现、示例配置以及相关文档。如果你想深入了解插件的内部工作原理或对其进行定制,可以查看并编译这些源...
《GMavenPlus IntelliJ 插件:Groovy Maven 集成与增强开发体验》 在软件开发领域,IntelliJ IDEA 作为一款强大的 Java 开发集成环境,深受开发者喜爱。而 GMavenPlus IntelliJ 插件则进一步提升了 IntelliJ IDEA ...