タグ付けされた質問 「groovy」

Groovyは、Javaプラットフォーム用のオブジェクト指向プログラミング言語です。Python、Ruby、Perl、Smalltalkと同様の機能を持つ動的言語です。Javaプラットフォームのスクリプト言語として使用できます。


1
Clojure 1.2.1 / 1.3 / 1.4 'Grails 2.0.0ランタイムで生成されたプロキシが失敗します。1.2.0で結構です
私はGrails 2.0.0(および2.1.0-SNAPSHOT)でGrails Clojureプラグインの拡張に取り組んでおり、それをClojure 1.3.0に更新してclojure.tools.loggingを追加したいと考えていました。 Clojure は、in のログストリーム関数のプロキシのコンパイル中に例外をスローし ます。ByteArrayOutputStreamclojure.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をヒットしようとしているので、あまり時間をかけませんでした。 いずれかで定義された「GEN-メソッド関数にスタックトレースポイントのletのフォームgenerate-proxyの中でcore_proxy.clj。 println何が起こっているのかを把握できるかどうかを確認するために、の周りに小さなを散りばめました。多分この次のステートメントは私の側の読者の大きな誤解を裏切るでしょうが、それらを単に追加するだけprintlnで、私が完全に予期していなかった方法でコンパイル時の動作を変更しました。のすべてのClojureテストにmvn package引き続き合格したにもかかわらず、例外の場所と例外の種類が完全に変更されました。 たとえば、printlnバイトコードの生成を開始する直前にgenメソッドに単一を追加すると、Clojureがスローされました ClassCastException: clojure.lang.PersistentArrayMap cannot be cast to java.lang.Class (https://gist.github.com/5a7a40929a6c4a104bd5) println(s)を配置した場所に応じて他のさまざまなエラーが発生しましたが、これが最も一般的です。 明らかに、GrailsとClojureの一部の側面がここで正しくメッシュ化していませんが、接続が表示されません。最初はASMの非互換性を疑っていましたが、Clojureには独自のASM名前空間があるため、それが問題であることはわかりません。しかし、私は間違っているかもしれません。私は何clojure.lang.Compiler日もproxyと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行目は「プロキシ
103 grails  groovy  clojure  proxy 


7
Hibernate:エンティティークラスに基づくdbテーブルの自動作成/更新
次のエンティティークラスがあります(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
default-packageのjava-classesにアクセスする方法は?
私は現在、他の人と一緒にgrailsプロジェクトで作業しています。私はいくつかのJavaクラスを書かなければなりません。しかし、groovyで作成された検索可能なオブジェクトにアクセスする必要があります。このオブジェクトはdefault-packageに配置する必要があるようです。 私の質問は:名前付きパッケージのJavaクラスからdefault-packageのこのオブジェクトにアクセスする方法はありますか?

12
別のGroovyにGroovyスクリプトを含める
別のGroovyスクリプトにGroovyファイルを単純にインポートする方法を読みました 1つのgroovyファイルで共通の関数を定義し、それらの関数を他のgroovyファイルから呼び出したいと思います。 これはスクリプト言語のようにGroovyを使用することになることを理解しています。つまり、クラスやオブジェクトは必要ありません。私はグルーヴィーで行うことができるdslのようなものにしようとしています。すべての変数はJavaからアサートされ、シェルでgroovyスクリプトを実行したいと思います。 これはまったく可能ですか?誰かがいくつかの例を提供できますか?
97 groovy 

3
Gradleスクリプトを別のスクリプトにインポートするにはどうすればよいですか?
私は、いくつかのnetbeansプロジェクトのビルドとデプロイに関するさまざまな機能を、さまざまな環境にまとめる複雑なGradleスクリプトを持っています。 スクリプトは非常にうまく機能しますが、本質的には、プロジェクトと環境の情報を保持する6ダースのマップを通じてすべて構成されます。 タスクを別のファイルに抽象化して、単純なビルドファイルでマップを定義し、他のファイルからタスクをインポートできるようにしたいと考えています。このようにして、いくつかのプロジェクトに同じコアタスクを使用して、単純なマップのセットでそれらのプロジェクトを構成できます。 Antのタスクと同様の方法で、1つのGradleファイルを別のGradleファイルにインポートする方法を誰かに教えてもらえますか?私はこれまで、Gradleのドキュメントを利用して何の役にも立ちませんでした。 追加情報 以下のトムの返答の後、私は私が何を意味するのかを正確に明らかにしようとするつもりだと思いました。 基本的に私はいくつかのサブプロジェクトを実行するgradleスクリプトを持っています。ただし、サブプロジェクトはすべてNetbeansプロジェクトであり、独自のantビルドスクリプトが付属しているため、gradleにこれらのそれぞれを呼び出すタスクがあります。 私の問題は、ファイルの先頭に次のような構成があることです。 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-22つの別個の値を持つことができるように文字列を分割しようとしています。たとえば、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 Webサイトでこのトピックに関する興味深いポイントを見つけました。 Javaと同様に、文字列を「+」記号で連結できます。しかし、Javaは、「+」式の2つの項目のうちの1つが文字列であることだけを必要とします。それが最初にあるか、最後にあるかは関係ありません。Javaは、「+」式の非文字列オブジェクトでtoString()メソッドを使用します。しかし、Groovyでは、「+」式の最初の項目がplus()メソッドを正しい方法で実装するので安全である必要があります。Groovyはそれを検索して使用するからです。Groovy GDKでは、NumberクラスとString / StringBuffer / Characterクラスのみに、文字列を連結するために実装されたplus()メソッドがあります。驚きを避けるために、常にGStringsを使用してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.