1

まず、英語が下手で申し訳ありません。私はフランス人です。質問が明確になることを願っています。

gradle を使用して grails プロジェクトを構築しており、rest プラグインを使用したいと考えています。

これが私のbuild.gradle confファイルです:

import org.grails.gradle.plugin.GrailsTask
version = '1.0'
grailsVersion = '2.2.1'
apply plugin: 'java'
apply plugin: 'maven'
apply plugin: 'grails'



buildscript {
        repositories {
            mavenCentral()
            mavenRepo name: "grails", url: 'http://repo.grails.org/grails/repo'
        }
        dependencies {
            classpath "org.grails:grails-gradle-plugin:1.1.1-SNAPSHOT"
        }
}

repositories {
    mavenCentral()
    mavenRepo name: 'grails', url: 'http://repo.grails.org/grails/repo'
    mavenRepo name: 'nexus', url: 'http://nexusurl.fr'
    mavenRepo url: 'http://repo.grails.org/grails/plugins'

}

uploadArchives {
    repositories {
       mavenDeployer {
             repository(url: 'http://url') {
             authentication(userName: 'log', password: 'pass')
}
             pom.version = '0.0.0'
             pom.artifactId = 'yo'
             pom.groupId = 'com.something'
             pom.packaging = 'war'
       }
    }
}



dependencies {
    ['dependencies', 'resources', 'core',  'plugin-domain-class', 'plugin-tomcat', 'plugin-services'].each { plugin ->
        compile "org.grails:grails-$plugin:2.2.1"
    }
    compile 'repo.grails.org:grails-plugins-rest:0.7'
    compile 'org.codehaus.jackson:jackson-mapper-asl:1.9.9'
    compile 'org.codehaus.jackson:jackson-core-asl:1.9.9'
    compile 'com.googlecode.json-simple:json-simple:1.1'
    bootstrap 'org.codehaus.groovy:groovy-all:1.8.6'
}

GRAILS_TASK_PREFIX = 'grails-'
if (name.startsWith(GRAILS_TASK_PREFIX)) {
    project.task(name, type: GrailsTask) {
        command "${name - GRAILS_TASK_PREFIX}"
    }
}

ここに残りのプラグインがあります: http://grails.org/plugin/rest

以前は、このプラグインを取得するのは非常に簡単でした:

grails install-plugin rest

次の行を application.properties ファイルに追加します。

plugins.rest=0.7

このプラグインをビルドファイルに追加する方法がわかりません。

私の grails アプリケーションは実行できますが、実行時にエラーが発生します。

Error |
2013-06-11 14:20:41,916 [http-bio-8080-exec-8] ERROR errors.GrailsExceptionResolver  - MissingMethodException occurred when processing request: [POST] /dwgui/signIn/login - parameters:
username: demo-user
password: ***
No signature of method: com.ftprod.dwgui.security.AuthenticationService.withHttp() is applicable for argument types: (java.util.LinkedHashMap, com.ftprod.dwgui.security.AuthenticationService$_testSign
In_closure1) values: [[uri:http://data.iraiser.eu], com.ftprod.dwgui.security.AuthenticationService$_testSignIn_closure1@2786aa0f]. Stacktrace follows:
Message: No signature of method: com.ftprod.dwgui.security.AuthenticationService.withHttp() is applicable for argument types: (java.util.LinkedHashMap, com.ftprod.dwgui.security.AuthenticationService$
_testSignIn_closure1) values: [[uri:http://data.iraiser.eu], com.ftprod.dwgui.security.AuthenticationService$_testSignIn_closure1@2786aa0f]
    Line | Method
->>   28 | testSignIn in com.ftprod.dwgui.security.AuthenticationService
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|     14 | login      in com.ftprod.dwgui.security.SignInController
|   1145 | runWorker  in java.util.concurrent.ThreadPoolExecutor
|    615 | run        in java.util.concurrent.ThreadPoolExecutor$Worker
^    722 | run . . .  in java.lang.Thread

この行を build.gradle の依存関係スコープに追加すると、gradle build 中にエラーが発生します:

compile 'repo.grails.org:grails-plugins-rest:0.7'

エラー :

* What went wrong:
Execution failed for task ':grails-run-app'.
> Could not find repo.grails.org:grails-plugins-rest:0.7.
  Required by:
      :dwgui:1.0

最後のエラーをはっきりと理解しています。

だからここに私の質問があります: gradle built を使用して grails の残りのプラグインを追加するにはどうすればよいですか?

4

4 に答える 4

2

最新の Grails はBuildConfig.groovy、依存関係ではなく、依存関係に使用しapplication.propertiesます。build.gradleGradle 専用です。Grails の依存関係については役に立たないと思います。

したがって、セクションを編集して、次のセクションconf/BuildConfig.groovyに配置する必要があります。plugins

plugins {
   ...    
   compile ":rest:0.7"
}

プラグインの依存関係については、ドキュメントを参照してください: http://grails.org/doc/latest/guide/conf.html#pluginDependencies

于 2013-06-11T12:34:18.443 に答える
2

ほとんどの grails プラグインと同様に、それらはほとんど時代遅れであり、死んでいます。プラグインには何が必要ですか? そのプラグインは 6 年間更新されていません。

REST のために行う必要があるほとんどすべてのことは組み込まれています。シリアライズ、URL ルーティングなど。

http://grails.org/doc/latest/guide/webServices.html#REST

そのすぐ下には、HTTP 要求を実行して JSON 応答を取得する方法を示す webservices セクションがあります。

import groovyx.net.http.*
import static groovyx.net.http.ContentType.JSON
def http = new HTTPBuilder("http://localhost:8080/amazon")

http.request(Method.GET, JSON) {
    url.path = '/book/list'
    response.success = { resp, json ->
      for (book in json.books) {
        println book.title
      }
     }
}
于 2013-06-11T12:30:57.390 に答える
0

あなたの英語は、あなたが思っていたほど悪くはありません。:)

プラグインの使いやすさについては @Nix に同意します。代わりに、かなり冗長なrest-client-builderプラグインを使用できます。

繰り返しますが、@Igor Artamonov がセットアップの回答で言及した方法に従う必要があります。

メルシー..

于 2013-06-11T12:54:18.020 に答える