-b [파일명]을 넣으면 build.gradle을 실행하지 않고 지정한 파일을 실행한다.

gradle –b etc.gradle

XML-RPC 웹 서비스로 구현

  • newPost()
  • getPost()
  • editPost()
  • newMediaObject()
  • getCategories()
  • getRecentPosts()

그루비에서 XMLRPC를 사용하려면 라이브러리 2개가 필요함

  • 저장위치는 groovy 홈의 lib 디렉토리
  • 리파지토리에서 최신 groovy-xmlrpc.jar파일 가져옴 [링크]
  • smack.jar 최신 버전 복사 [링크]
  • 이후 그루비 콘솔 등에서 테스트 해보면 됨

블로그 글 올리기

  • TO BE CONTINUED…

참고

 

준비사항

  • Google App Engine SDK
  • Grails 1.1.1 (상위버전은 아직 동작안함)

Grails App 생성

grails create-app gae_demo

App-Engine 플러그인 설치

cd gae_demo

grails install-plugin app-engine

  • 플러그인 설치 과정 중 jpa 선택

도메인 클래스 생성

grails create-domain-class gae.Note

  • 패키지 명을 넣지 않으면 구글 앱 엔진이 동작하지 않는다.

Note에 대한 컨트롤러와 뷰 생성

grails generate-all gae.Note

도메인 클래스 어노테이션 변경

  • @Entity, @Id, @GeneratedValue 등은 Grails에서 추가한 어노테이션임
  • @Basic 어노테이션을 추가

package gae

import javax.persistence.*
//import com.google.appengine.api.datastore.Key

@Entity
class Note implements Serializable {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    Long id

    @Basic
    String message
}

뷰와 컨트롤러 생성

grails generate-all gae.Note

구글 앱 엔진 배포

  • 구글 앱 엔진 웹사이트에서 애플리케이션을 생성한다.
  • 애플리케이션 생성시 이름을 넣고 이 이름을 grails-app/conf/config.groovy에 다음 라인을 추가

google.appengine.application = “<애플리케이션명>”

호스팅을 위하여 버전을 명시하고 패키징

grails set-version 1
grails app-engine package
$APPENGINE_HOME/bin/appconfig.sh update ./target/war

배포 실행

grails app-engine deploy

참고

그루비로 트위터 데이터을 긁어오는 소스
Twitter4J 라이브러리를 사용했음.

import twitter4j.*

def twitter = new Twitter( 'id', 'passwd')
List<Status> statuses = twitter.getFriendsTimeline()

for(Status status : statuses) {
    println "@${status.user.screenName}(${status.user.statusesCount})\t$status.text"
}

참고

-Pname=value 형식으로 전달함.

ex) gradle test -Pname=value

스크립트에서는 project.getProperties()로 파라메터 맵을 받아서 처리한다.

task hello << {
def props = project.getProperties()

    println "Hello world, $props.id !"
}

+ Recent posts