Questions tagged «groovy»

Groovy是Java平台的一种面向对象的编程语言。这是一种动态语言,其功能类似于Python,Ruby,Perl和Smalltalk。它可以用作Java平台的脚本语言。

15
如何在詹金斯管道作业中列出所有`env`属性?
给定了jenkins 2.1构建管道,jenkins将env变量注入node{}。例如,BRANCH_NAME可以通过 node { echo ${env.BRANCH_NAME} ... 我想回显詹金斯管道内的所有 env属性 ...考虑到我不知道所有物业提前。 我正在寻找类似的代码 node { for(e in env){ echo e + " is " + ${e} } ... 这会回声类似 BRANCH_NAME is myBranch2 CHANGE_ID is 44 ...

1
在Grails 2.0.0运行时生成的Clojure 1.2.1 / 1.3 / 1.4'代理失败。1.2.0很好
我正在扩展的Grails的Clojure插件在Grails的2.0.0(和2.1.0-SNAPSHOT),我想把它升级到Clojure的1.3.0,并添加clojure.tools.logging。 Clojure的一个编译过程中抛出一个异常 代理的ByteArrayOutputStream中clojure.tools.logging的日志流功能: ClassCastException: clojure.asm.Type cannot be cast to clojure.lang.IFn (https://gist.github.com/a6ae681c37091a3d2379) 我去和删除clojure.tools.logging,并写了一个剥离下来的代理的Object: (proxy [java.lang.Object] [] (toString [] "proxy's toString")) 它也引发了同样的ClassCastException信息。 我试图打印代理的macroexpand-1,并得到了同样的东西。 我恢复为Clojure 1.2.0,代理再次正常工作。 我尝试了多个1.4.0的版本,它们表现出与1.3.0相同的行为。1.2.1也引发了一些异常,但是我试图达到1.3.0,所以我并没有花太多时间。 堆栈跟踪指向in的let形式之一generate-proxy中定义的'gen-method函数core_proxy.clj。 我在附近添加了一个小的符号,println以查看是否可以捕获正在发生的情况。也许下一条语句会背叛我,这对读者是一个巨大的误解,但只是添加这些内容println,就以我完全没想到的方式改变了编译时的行为。即使所有Clojure测试mvn package继续通过,异常位置和异常类型也已完全更改。 例如,println在开始生成字节码之前仅在gen-method中添加一个会导致Clojure抛出 ClassCastException: clojure.lang.PersistentArrayMap cannot be cast to java.lang.Class (https://gist.github.com/5a7a40929a6c4a104bd5) 根据放置位置,我还看到了其他各种错误,println但这是最普遍的。 显然,Grails和Clojure的某些方面在此处无法正确啮合,但我看不到连接。起初,我怀疑ASM不兼容,但是由于Clojure具有自己的ASM名称空间,所以我看不出这是问题所在。但是也许我错了,我一直盯着clojure.lang.Compiler,代理和generate-proxy了好几天了,试图使它起作用,但由于动力不足,我几乎停止了前进的步伐:( 对于缺少链接,我深表歉意。您可以从下面复制和粘贴: Grails Clojure-github.com/grails-plugins/grails-clojure Clojure工具日志记录-github.com/clojure/tools.logging/blob/master/src/main/clojure/clojure/tools/logging.clj第133行是'proxy
103 grails  groovy  clojure  proxy 


7
休眠:根据实体类自动创建/更新数据库表
我有以下实体类(在Groovy中): import javax.persistence.Entity import javax.persistence.Id import javax.persistence.GeneratedValue import javax.persistence.GenerationType @Entity public class ServerNode { @Id @GeneratedValue(strategy = GenerationType.AUTO) Long id String firstName String lastName } 和我的persistence.xml: <?xml version="1.0" encoding="UTF-8"?> <persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0"> <persistence-unit name="NewPersistenceUnit"> <provider>org.hibernate.ejb.HibernatePersistence</provider> <properties> <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/Icarus"/> <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/> <property name="hibernate.connection.username" value="root"/> <property name="hibernate.connection.password" value=""/> <property name="hibernate.archive.autodetection" …
101 java  mysql  hibernate  jpa  groovy 


5
如何访问默认包中的java类?
我现在正在与其他人一起在grails项目中工作。我必须编写一些Java类。但是我需要访问使用groovy创建的可搜索对象。看来,该对象必须放在默认包中。 我的问题是:有没有办法从命名包中的Java类访问默认包中的此对象?

12
在另一个常规中包含常规脚本
我已经阅读了如何在另一个groovy脚本中简单地导入groovy文件 我想在一个groovy文件中定义通用功能,并从其他groovy文件中调用这些功能。 我知道这将像脚本语言一样使用Groovy,即,我不需要类/对象。我正在尝试可以在groovy中完成的类似dsl的操作。所有变量都将从Java声明,我想在shell中执行groovy脚本。 这有可能吗?有人可以提供一些例子。
97 groovy 

3
如何将一个Gradle脚本导入另一个脚本?
我有一个复杂的gradle脚本,该脚本封装了围绕将多个netbeans项目构建和部署到许多环境的功能。 该脚本可以很好地运行,但是从本质上来说,它是通过六个包含项目和环境信息的地图进行配置的。 我想将任务抽象到另一个文件中,以便可以在一个简单的构建文件中简单地定义地图,然后从另一个文件中导入任务。这样,我可以对多个项目使用相同的核心任务,并使用一组简单的地图来配置这些项目。 谁能告诉我如何以与Ant的任务类似的方式将一个gradle文件导入另一个文件?到目前为止,我已经拖了Gradle的文档无济于事。 附加信息 汤姆在下面做出回应后,我想我会尽力弄清楚我的意思。 基本上,我有一个gradle脚本,它可以运行许多子项目。但是,这些子项目都是Netbeans项目,并且带有它们自己的ant生成脚本,因此我要分担一些任务来分别调用它们。 我的问题是我在文件顶部有一些配置,例如: projects = [ [name:"MySubproject1", shortname: "sub1", env:"mainEnv", cvs_module="mod1"], [name:"MySubproject2", shortname: "sub2", env:"altEnv", cvs_module="mod2"] ] 然后,我生成如下任务: projects.each({ task "checkout_$it.shortname" << { // Code to for example check module out from cvs using config from 'it'. } }) 我有许多这样的任务生成片段,它们都是通用的-它们完全取决于项目列表中的配置。 所以我想要的是一种将其放在单独的脚本中并以以下方式导入的方法: projects = [ [name:"MySubproject1", …
97 java  ant  groovy  build  gradle 

5
更新Studio 3.4后,无法为自变量找到方法leftShift()
将Studio 3.4和Gradle版本更新到5.1.1我后,由于找不到方法leftShift(),我在执行任务时遇到了错误 我的任务: task incrementBetaVersion << { println("Incrementing Beta Version Number...") incrementVersionNumber('BetaVersionNumber') println("Incrementing Beta Version Number...") incrementVersionName('BetaVersionName') } 我<<在行中出现了左移运算符的错误。 如何解决这个错误?

8
找不到参数Gradle的方法compile()
现在,寻找这种解决方案的时间已经太久了,我不确定是错过了还是只是输错了什么,但是我的Gradle脚本无法编译。我正在迁移到Gradle,并且对它很陌生。我已经非常习惯于使用Maven进行依赖管理,但是Gradle似乎对我来说最好。通过运行以下代码段: dependencies { compile group: 'org.bukkit', name: 'bukkit', version: '1.7.9-R0.1-SNAPSHOT' compile('io.ibj:MattLib:1.1-SNAPSHOT') { exclude group: 'de.bananaco' exclude 'net.milkbowl:vault:1.2.27' } compile group: 'net.citizensnpcs', name: 'citizens', version: '2.0.12' compile group: 'com.sk89q', name: 'worldedit', version: '5.6.1' compile group: 'com.sk89q', name: 'worldguard', version: '5.9' compile group: 'net.milkbowl', name: 'vault', version: '1.2.12' compile fileTree(dir: 'libs', includes: …
95 java  groovy  gradle 


6
用定界符分割字符串
我目前正在尝试分割字符串,1128-2以便可以有两个单独的值。例如,value1:1128和value2:2,这样我就可以分别使用每个值。我已经尝试过,split()但是没有成功。Grails是否有特定的处理方式,或者有更好的处理方式?
94 string  groovy  split 

4
获取目录中所有文件的列表(递归)
我正在尝试获取(不打印,这很容易)目录及其子目录中的文件列表。 我试过了: def folder = "C:\\DevEnv\\Projects\\Generic"; def baseDir = new File(folder); files = baseDir.listFiles(); 我只得到目录。我也尝试过: def files = []; def processFileClosure = { println "working on ${it.canonicalPath}: " files.add (it.canonicalPath); } baseDir.eachFileRecurse(FileType.FILES, processFileClosure); 但是“文件”在闭包范围内不被识别。 如何获得清单?

3
用Groovy进行字符串连接
在Groovy中串联字符串的最佳(惯用)方法是什么? 选项1: calculateAccountNumber(bank, branch, checkDigit, account) { bank + branch + checkDigit + account } 选项2: calculateAccountNumber(bank, branch, checkDigit, account) { "$bank$branch$checkDigit$account" } 我已经在旧的Groovy网站上找到了有关此主题的有趣观点:您可以做的事情最好不要做。 与Java中一样,您可以将字符串与“ +”符号连接起来。但是Java只需要将“ +”表达式的两个项目之一作为字符串,无论它在首位还是在最后一位。Java将在“ +”表达式的非String对象中使用toString()方法。但是在Groovy中,您应该安全无忧,“ +”表达式的第一项以正确的方式实现plus()方法,因为Groovy会搜索并使用它。在Groovy GDK中,只有Number和String / StringBuffer / Character类具有实现串联字符串的plus()方法。为避免意外,请始终使用GStrings。

4
在IntelliJ IDEA中配置Groovy SDK
我正在运行IntelliJ IDEA 2017.2.3。我通过Homebrew(OS X)安装了Groovy 2.4.12。当打开Groovy源文件(或Jenkinsfile)时,得到以下信息: 没有为模块'my-module'配置Groovy SDK。。。。。配置Groovy SDK ... 单击“配置Groovy SDK ...”会将我带到以下对话框: 我尝试点击“创建...”并选择许多与Groovy相关的文件夹和可执行文件,但没有任何效果。 如何使IntelliJ IDEA接受我的Groovy SDK?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.