블로그 이미지
Max.

calendar

          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            

Notice

2011.12.21 12:13 개발관련
Spring Roo 1.2.0.Release 를 이용한 Maven Multi Project에 대한 예시이다.

1) 실행 스크립트는 대충 아래와 같다.

E:\Projects\Test>mkdir max-roo

E:\Projects\Test>cd max-roo

E:\Projects\Test\max-roo>roo

roo> project --topLevelPackage net.max --packaging POM --projectName max-parent

roo> module create --moduleName max-core --topLevelPackage net.max.core --packaging JAR

max-core roo> module focus --moduleName ~

roo> module create --moduleName max-biz --topLevelPackage net.max.biz --packaging JAR

max-biz roo> module focus --moduleName ~

roo> module create --moduleName max-web --topLevelPackage net.max.web --packaging WAR

max-web roo> module focus --moduleName ~

roo> perform eclipse

[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO]
[INFO] max-core
[INFO] max-biz
[INFO] max-web
[INFO] max-parent
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building max-core 0.1.0.BUILD-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-eclipse-plugin:2.7:clean (default-cli) @ max-core ---
[INFO] Deleting file: .project
[INFO] Deleting file: .classpath
[INFO] Deleting file: .wtpmodules
[INFO] Deleting file: .component
[INFO] Deleting file: org.eclipse.wst.common.component
[INFO] Deleting file: org.eclipse.wst.common.project.facet.core.xml
[INFO] Deleting file: org.eclipse.jdt.core.prefs
[INFO] Deleting file: org.eclipse.ajdt.ui.prefs
[INFO]
[INFO] >>> maven-eclipse-plugin:2.7:eclipse (default-cli) @ max-core >>>
[INFO]
[INFO] --- aspectj-maven-plugin:1.2:compile (default) @ max-core ---
[INFO]
[INFO] <<< maven-eclipse-plugin:2.7:eclipse (default-cli) @ max-core <<<
[INFO]
[INFO] --- maven-eclipse-plugin:2.7:eclipse (default-cli) @ max-core ---
[INFO] Adding support for WTP version 2.0.
[INFO] Using Eclipse Workspace: null
[INFO] Adding default classpath container: org.eclipse.jdt.launching.JRE_CONTAINER
[INFO] Wrote settings to E:\Projects\Test\max-roo\max-core\.settings\org.eclipse.jdt.c
[INFO] Wrote Eclipse project for "max-core" to E:\Projects\Test\max-roo\max-core.
[INFO]
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building max-biz 0.1.0.BUILD-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-eclipse-plugin:2.7:clean (default-cli) @ max-biz ---
[INFO] Deleting file: .project
[INFO] Deleting file: .classpath
[INFO] Deleting file: .wtpmodules
[INFO] Deleting file: .component
[INFO] Deleting file: org.eclipse.wst.common.component
[INFO] Deleting file: org.eclipse.wst.common.project.facet.core.xml
[INFO] Deleting file: org.eclipse.jdt.core.prefs
[INFO] Deleting file: org.eclipse.ajdt.ui.prefs
[INFO]
[INFO] >>> maven-eclipse-plugin:2.7:eclipse (default-cli) @ max-biz >>>
[INFO]
[INFO] --- aspectj-maven-plugin:1.2:compile (default) @ max-biz ---
[INFO]
[INFO] <<< maven-eclipse-plugin:2.7:eclipse (default-cli) @ max-biz <<<
[INFO]
[INFO] --- maven-eclipse-plugin:2.7:eclipse (default-cli) @ max-biz ---
[INFO] Adding support for WTP version 2.0.
[INFO] Using Eclipse Workspace: null
[INFO] Adding default classpath container: org.eclipse.jdt.launching.JRE_CONTAINER
[INFO] Wrote settings to E:\Projects\Test\max-roo\max-biz\.settings\org.eclipse.jdt.co
[INFO] Wrote Eclipse project for "max-biz" to E:\Projects\Test\max-roo\max-biz.
[INFO]
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building max-web 0.1.0.BUILD-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-eclipse-plugin:2.7:clean (default-cli) @ max-web ---
[INFO] Deleting file: .project
[INFO] Deleting file: .classpath
[INFO] Deleting file: .wtpmodules
[INFO] Deleting file: .component
[INFO] Deleting file: org.eclipse.wst.common.component
[INFO] Deleting file: org.eclipse.wst.common.project.facet.core.xml
[INFO] Deleting file: org.eclipse.jdt.core.prefs
[INFO] Deleting file: org.eclipse.ajdt.ui.prefs
[INFO]
[INFO] >>> maven-eclipse-plugin:2.7:eclipse (default-cli) @ max-web >>>
[INFO]
[INFO] --- aspectj-maven-plugin:1.2:compile (default) @ max-web ---
[INFO]
[INFO] <<< maven-eclipse-plugin:2.7:eclipse (default-cli) @ max-web <<<
[INFO]
[INFO] --- maven-eclipse-plugin:2.7:eclipse (default-cli) @ max-web ---
[INFO] Adding support for WTP version 2.0.
[INFO] Using Eclipse Workspace: null
[INFO] Adding default classpath container: org.eclipse.jdt.launching.JRE_CONTAINER
[INFO] Wrote settings to E:\Projects\Test\max-roo\max-web\.settings\org.eclipse.jdt.co
[INFO] Wrote Eclipse project for "max-web" to E:\Projects\Test\max-roo\max-web.
[INFO]
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building max-parent 0.1.0.BUILD-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-eclipse-plugin:2.7:clean (default-cli) @ max-parent ---
[INFO]
[INFO] >>> maven-eclipse-plugin:2.7:eclipse (default-cli) @ max-parent >>>
[INFO]
[INFO] <<< maven-eclipse-plugin:2.7:eclipse (default-cli) @ max-parent <<<
[INFO]
[INFO] --- maven-eclipse-plugin:2.7:eclipse (default-cli) @ max-parent ---
[INFO] Not running eclipse plugin goal for pom project
[INFO] Adding support for WTP version 2.0.
[INFO] Using Eclipse Workspace: null
[INFO] Adding default classpath container: org.eclipse.jdt.launching.JRE_CONTAINER
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] max-core .......................................... SUCCESS [1.701s]
[INFO] max-biz ........................................... SUCCESS [0.063s]
[INFO] max-web ........................................... SUCCESS [0.060s]
[INFO] max-parent ........................................ SUCCESS [0.273s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.569s
[INFO] Finished at: Wed Dec 21 12:04:25 KST 2011
[INFO] Final Memory: 7M/17M
[INFO] ------------------------------------------------------------------------
roo> roo> q

2) 생성된 소스코드를 import하면 이클립스에서 잘 인식된다. 아래 소스코드 첨부
저작자 표시
신고
posted by Max.
2011.10.17 08:31 개발관련
어디를 보든, Roo 에 대한, 최대 장점은 생산성이 아주 높아진다는 것에 있다. 처음 접할때 가장 눈에 띄는 것도 그점이다. 한두줄의 명령어로 엄청난 소스코드를 생성해 버리니까 그럴만한 강력한 인식이 생겨나는것도 무리가 아니다. 그러나, 생산량의 엄청난 증가가 생산성 향상에 관련이 있을까? 생산성에 대한 정의를 잘~ 해보면, 약간 다른 관점으로 볼수 있다. 생산성에 대한 정의는 사람마다, 조직마다 다를수 있다. 적어도 나는 단순한 생산량의 증가가 생산성 증가를 가져다 준다고 생각하지 않는다.


그럼 Roo 에서 말하는 생산성은 어떤 관점일까? 그것은 생산량에 대한 관리의 용의성이 높이는 것을 하나의 생산성의 관점으로 본것이라 생각한다. (정확히 한 관점이지 모든 것을 뜻하는게 아니다. 적어도 품질관점에 관해서는 언급하지 않았으니까...) 그러니까, 단순히 모든 관점에서의 생산성을 높여준다고 이해하기 보다는, 특정한 측면에서 생산성을 높여준다고 생각해야 하는데, 그게 단순히 코드량를 뜻하진 않는다는 것을 강조하고 싶은것이다. Roo 하면 그런 코드량 때문에 생산성 이야기가 화두인데, 그것이 핵심이 아니라는  것이다. 무엇이 핵심일까?


'생산량에 대한 관리의 용의성'은 복잡성과도 관련되어 있다. 복잡성은 생산성과도 관련되어 있고...어쨌든, 저 문장에 집중해 보면, 아니 풀이해 보면, Roo에서 생산한 소스코드에 대해 관리를 잘한다는것이다. 관리를 잘 한다는것이 바로 핵심이다. 


생성되는 코드는 특정한 기준으로 분리되어 있다가 조합 되어진다. 마치 레고 블럭과도 같다. 이것이 주는 장점은 무엇일까, 이것은 우리가 객체를 클래스 단위로 분리하는 이유와 비슷하고, 패키지(네임스페이스) 단위로 분류하는 것과도 비슷하며, Layered Architecture와도 비슷하다. 우리는 이런것으로 부터 많은 이점을 얻는다. Roo는 그것을 클래스 단위까지 적용시킨 것이다. 너무 비약일지 모르지만, 단순이 세부 기술인 ITDs를 이용했다느니, finder 같은 엑티브 레코드 패턴 구현체로만 인식하기엔 서운함이 있다.


결과적으로 Roo 에서의 생산성 극대화는 소스코드의 생산량의 극대화가 아니라, 관심의 분리(SOC)로 인한 복잡성 관리의 극대화를 노리고 있는게 합당하다.



'왜 이렇게 보고 있는가'에 대한 다른 도움말로는, '도메인주도개발(DDD)' 과 '소프트웨어 복잡성'에 대한 사전 이해가 도움이 될텐데, 나는 이 두가지에 대해 설명할수 있을 정도로 이분야에 대해 아는게 없다. 인터넷에서 관련해서 좋은 글을 본적이 있는것 같은데, 어디서 봤는지 알수 없다.(어쩌면 책에서 봤는지도 모르겠다)



저작자 표시
신고
posted by Max.
2011.10.11 17:28 개발관련
나는 Spring Roo을 다양한 관점에 바라볼 필요가 있다고 생각한다. 혹자는 DDD 관점에서 Roo에 대해 툴 관점의 특징만 비교하기도 한다. 분명히 잘못되었다. 태생의 루와 지금의 루가 형식이 다르더라도 철학은 함께하고 있다고 믿기 때문이다. 어쨌든 그것은 나중에 이야기 하자. 이제, 루에 대해 툴 관점에서 바라보고 이야기해 보자.


제목의 복잡하다는 것과 단순하다는 것에 대한 정의가 모호하지만, 일반적인 웹 프로젝트라고 할수 있는 것에 적용이 불가능할것이라는 생각이 지배적인것 같다.  이유는 가끔 뻑이 나는 빌드 스크립트와 다양한 도메인에 맞게 자동생성되어야 하는 소스코드의 기능이 안전하게 제공되지 않는것에 대한 불안감에서 나오는 것이다. 즉, 입맞에 맞게(다양한 환경에 적응 가능하게) 제대로 실행되는걸 기대하기 어렵기 때문인것 같다. 그래서 아주 단순한 웹사이트나 가능한 툴로 인식해버리려 할것이다. 아마도 원하는 기대는 완전한 소스코드가 생성되고, 어떤 도메인이든, 어떤 경우에도 알맞게 코드가 생성되어야 만족할만한 툴로 인식할 것이다.

내 생각에 아마도 위와 같은 기대를 채워줄수 있는 툴은 세상에 나올수 없다. 설령 기술적으로 가능하더라도 지향해서는 안될일이다.

몇가지 의문을 품어 보자. Spring Roo는 무엇일까? 어떻게 세상에 나왔나?, Spring Roo가 왜 addon 기반으로 발전할수 있게 구성 하였을까(단순히 OSGi를 지향하기 위해서는 아닐것이다)?, Spring Roo 커뮤니티가 활발한 이유는 무엇일까?...



특정 도메인의 뼈대가 되는 구조는 그 도메인 특성이 반영되야 한다. 같은 RESTful 기반의 시스템도 특성에 따라 하부 주조가 너무나 다양하게 구성될수 있다. 또한 특정기능에 대한 공통기능도 다 차이가 있을수 밖에 없다. Spring Roo는 그런 뼈대 구조와 반복적인 기능을 효과적으로 제공할수 있는 기틀을 마련해 주는 것이다(이것이 의미하는 것은 무엇인가). 따라서 기본 addon을 수정할수 있어야 하고, 필요에 따라 추가적인 addon을 만들어 낼수 있어야 한다. 그렇치 못한다면, Roo는 실무 프로젝트에서 사용할수 없은 교육용 툴에 지나지 않는 것이다. 


Roo에 대한 특징 중 소스코드 생성 때문에 생산성이 상당히 향상되리라 믿는 사람도 있다. 하지만, 생산량이 많을진 몰라도 생산성이 그리 높지는 않다. 이부분도 나중에 한번 이야기해 보자...

(초창기 Roo에 대한 토비님이 남겨 놓은 귀중한 자료도 있다.  http://toby.epril.com/?p=346 여기를 참조해 보자.)
저작자 표시
신고
posted by Max.
2011.07.01 10:43 개발관련
project --topLevelPackage net.max --projectName test2
persistence setup --provider HIBERNATE --database MYSQL 
database properties set --key database.password --value 1212
database properties set --key database.url --value jdbc:mysql://localhost:3306/test
database properties set --key database.username --value root


entity --class ~.account.domain.Account
field string --fieldName name
field string --fieldName email
field number --fieldName visitCount --type java.lang.Integer --min 0
field date --fieldName writeDate --type java.util.Date --dateFormat SHORT

max setup
max service --class ~.account.service.AccountService --entity ~.account.domain.Account
max web --class ~.account.web.AccountController --service ~.account.service.AccountService


perform eclipse

------------------------------------

>mvn jetty:run

브라우저 확인 후,

>roo

이클립스 확인후, 
 
------------------------------------
entity --class ~.goods.domain.Goods
field string --fieldName name
field string --fieldName title
field number --fieldName eaCount --type java.lang.Integer --min 0
field date --fieldName writeDate --type java.util.Date

max service --class ~.goods.service.GoodsService --entity ~.goods.domain.Goods
max web --class ~.goods.web.GoodsController --service ~.goods.service.GoodsService

------------------------------------
> mvn jetty:run
브라우저 확인
 

저작자 표시
신고
posted by Max.
2011.01.12 20:49 개발관련
타이틀에 "기념샷"이라고 붙인 이유는, 오늘 퇴근전에 간단히 업데이트 하려고 했는데, 간단하지 않아서 붙인것이다.(아... 힘들어....)

최근 Roo가 업데이트 되었다고 해서 빌드를 시도했다. 시작부터 프로젝트는 Maven3으로 바뀌어서 빌드조차 되지 않았고, 그 이후에도 GPG 비밀번호 입력 때문에 손까락 무지 아프게 했다.

정말 백번은 더 입력한듯한 노가다 끝에 빌드가 된 것을 보고 퇴근함에 있어 기쁨에 찬 샷을 올리고 퇴근한다....


자세한 기능 업데이트는 SS 블로그를 참조하면 될듯... 오호홋!
저작자 표시
신고

'개발관련' 카테고리의 다른 글

Roo로 개발시 주의사항  (0) 2011.02.22
Roo에서 list sorting  (0) 2011.02.22
Spring Roo 1.1.2 BUILD-SNAPSHOT 기념샷  (0) 2011.01.12
토비의스프링3 읽고나서...  (12) 2010.12.13
Jersey + XML 호출 예제 테스트  (0) 2010.12.13
Spring + Jersey + Dozer 예제  (0) 2010.12.10
posted by Max.
2010.08.04 10:29 개발관련

최근, 빌드를 하면,  로그에 새로운 Addon이  보인다.

[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] ------------------------------------------------------------------------
...
[INFO] Spring Roo - Addon - Maven ............................ SUCCESS [0.764s]
[INFO] Spring Roo - Addon - JavaBean Information ............. SUCCESS [0.651s]
[INFO] Spring Roo - Addon - toString ......................... SUCCESS [0.921s]
[INFO] Spring Roo - Addon - JavaBean Method Manager .......... SUCCESS [0.669s]
[INFO] Spring Roo - Addon - Plural Details ................... SUCCESS [0.647s]
[INFO] Spring Roo - Addon - Property Files ................... SUCCESS [0.642s]
[INFO] Spring Roo - Addon - @Configurable Support ............ SUCCESS [0.639s]
[INFO] Spring Roo - Addon - Email ............................ SUCCESS [0.752s]
[INFO] Spring Roo - Addon - JPA .............................. SUCCESS [1.114s]
[INFO] Spring Roo - Addon - JMS .............................. SUCCESS [0.744s]
[INFO] Spring Roo - Addon - @RooSerializable Support ......... SUCCESS [0.656s]
[INFO] Spring Roo - Addon - Entity ........................... SUCCESS [0.868s]
[INFO] Spring Roo - Addon - Finder ........................... SUCCESS [0.862s]
[INFO] Spring Roo - Addon - Logging .......................... SUCCESS [0.739s]
[INFO] Spring Roo - Addon - Property Editor .................. SUCCESS [0.831s]
[INFO] Spring Roo - Addon - Test Data On Demand .............. SUCCESS [1.063s]
[INFO] Spring Roo - Addon - Automated Integration Testing .... SUCCESS [0.918s]
[INFO] Spring Roo - Addon - Backup ........................... SUCCESS [0.640s]
[INFO] Spring Roo - Addon - Web MVC Controller ............... SUCCESS [1.015s]
[INFO] Spring Roo - Addon - Web MVC JSP View ................. SUCCESS [1.322s]
[INFO] Spring Roo - Addon - Web MVC Embedded Extensions ...... SUCCESS [1.384s]

[INFO] Spring Roo - Addon - Spring Security .................. SUCCESS [0.873s]
[INFO] Spring Roo - Addon - Solr ............................. SUCCESS [1.119s]
[INFO] Spring Roo - Addon - Web - Flow ....................... SUCCESS [0.923s]
[INFO] Spring Roo - Addon - Web Selenium Test Generator ...... SUCCESS [0.891s]
[INFO] Spring Roo - Addon - Google Web Toolkit ............... SUCCESS [2.070s]
[INFO] Spring Roo - Addon - JDBC Driver Acquisition .......... SUCCESS [32.913s]
[INFO] Spring Roo - Addon - Database Reverse Engineering ..... SUCCESS [2.728s]
[INFO] Spring Roo - Addon - Creator .......................... SUCCESS [1.700s]
[INFO] Spring Roo - Annotations (ASLv2/GPLv3 Dual Licensed) .. SUCCESS [1:10.939s]
[INFO] ------------------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2 minutes 47 seconds
[INFO] Finished at: Wed Aug 04 08:56:47 KST 2010
[INFO] Final Memory: 78M/140M
[INFO] ------------------------------------------------------------------------

바로 Web MVC Embedded Extensions 이라는 addon인데, Spring Roo 1.1.0.M3 버전 부터 지원되는 기능이다.

무슨기능일까?

한마디로 외부 리소스를 연동하는 편리한 addon 명령어를 넣은 것이다.(이것이 의미하는 미래를 상상해보는 것도 재미 있을듯...) 현재 지원하는 리소스는 아래와 같다.


Video

  • YouTube
  • Google Video
  • Vimeo
  • Viddler
  • Screenr

Video Streaming

  • UStream
  • LiveStream

Photo Galleries

  • Flikr
  • Picasa

Documents

  • Google Presentations
  • Scribd
  • SlideShare
  • Google Maps
  • Google Wave
  • Twitter
  • Wikinvest

이런 리소스를 사용하게 해주는 명령은 아래와 같은데, 이중 generic은 자동으로 해당 리소스와 연결시켜 준다.

예를 들어 보자. 아래와 같은 평범한 Roo 스크립트를 실행하고, 웹에 띄우면?

project --topLevelPackage com.max.roo --projectName max-roo
web mvc embed generic --url http://twitter.com/#search?q=@heterosis
web mvc embed generic --url http://www.slideshare.net/yunsunghan/d-flexspring-blaze-ds-intergration

이런 화면이 나온다. (슬라이드쇼와 트윗터 슬라이딩이 잘된다.)


어떻게 작동할까?

소스 생성 로그를 보면 알수 있다. 안타갑게도, 관련 Java소스는 생성하지 않고, 입력 Param으로 구분만 한다. 해서, 생성되는 java코드는 없고, 해당 변수를 하드코딩하여 보여주는것이 전부다. 해서 로그도 간단하다.

com.max.roo roo> web mvc embed generic --url http://www.slideshare.net/yunsunghan/d-flexspring-blaze-ds-intergration
Created SRC_MAIN_WEBAPP\WEB-INF\tags\embed\document.tagx
Created SRC_MAIN_WEBAPP\WEB-INF\views\embed\slideshare.jspx
Managed SRC_MAIN_WEBAPP\WEB-INF\i18n\application.properties
Managed SRC_MAIN_WEBAPP\WEB-INF\views\menu.jspx
Managed SRC_MAIN_WEBAPP\WEB-INF\views\embed\views.xml
Managed SRC_MAIN_WEBAPP\WEB-INF\spring\webmvc-config.xml

소스를 보면 대충 이렇다.
...
<jsp:output omit-xml-declaration="yes"/>
...
        <embed:microblogging id="twitter_@heterosis" searchTerm="@heterosis"/>
        <embed:document documentId="dflexspringblazedsintergration-100507033946-phpapp01" provider="slideshare"/>

붉은색 테크가 그 역할을 수행한다. <embed> 테그의 정의는 tags 폴더에 있는데, 대충 각각의 리소스를 출력하기 위한 Html 테그들이 있다. 아래는 그중 일부를 발췌...

  <c:when test="${provider eq 'slideshare'}">
   <object id="__sse4735954" width="545" height="400">
    <param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=${documentId}" />
    <param name="allowFullScreen" value="true"/>
    <param name="allowScriptAccess" value="always"/>
    <embed name="__sse4735954" width="545" height="400" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=${documentId}" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true"></embed>
   </object>
  </c:when>

그래서?

대략, Web MVC Embedded Extensions 이라는 addon이 이정도 기능을 한다. 사실 이런것들은 일반적인 SI나 솔루션하고는 거리가 먼 기능들인데, 이양반들이 이렇게 넣은 이유가 있을듯 하다. 구글과의 관계도 그렇고, 해외에서의 Social 바람도 그렇고, 메이븐 멀티 모듈 지원의 어려움도 그렇고... 구글과 스프링소스가 큰(?) 꿈을 꾸고 있는듯 하다.... (Roo는 솔루션이나, SI, IT서비스 업체를 위한 툴이 아니것 같다는...)
저작자 표시
신고
posted by Max.
2010.07.29 10:31 개발관련

오래전 이문제가 대두되었지만, 진전된게 없다. Java 환경이 어디 단순한 일만 있는 것도 아니고, 비교되는 Php와 Ruby, Grails와는 구분이 되어야 하지 않겠는가...

소스생성 방법이 구조적으로 프로젝트 끼리 참조가되어야 하고, 서로 생성 관계를 유지해야 하므로 상당히 까다로울수 밖에 없는 구조다. 해서 쉽게 지원하기가 어려울수 밖에 없다. 그러나 오픈소스가 그렇듯, 커뮤니티에서 많은 요구가 있으면 어떻게든 해볼수도 있다는 것 같은데...


Ben Alex's Comment

"Multi-project-related support is not a priority for Roo at this time, as our focus is on single project productivity. If we support multi-project semantics a number of improvements would be necessary to related infrastructure (particularly classpath metadata abstractions, as we'd need to access the source code or bytecode for related projects) and therefore this request is not as simple as it initially appears."



Spring Roo의 그 어떤 잡기능 보다도, 이게 제일 필요한데, 요구가 별로 없는것 같다. 아래 링크에 폭탄 댓글이라도 달아야 하는거 아닌가...

"Multi Module Project를 지원해 주... ㅜㅜ"

Allow specification of a parent pom -
https://jira.springsource.org/browse/ROO-163

Support for flat multi module project -
https://jira.springsource.org/browse/ROO-120

저작자 표시
신고
posted by Max.
2010.06.14 14:27 개발관련
현재까지 가장 최신버전인 Spring Roo 1.1.0.0001를 기반으로 빌드하는 과정 기록.

1. Git 에서
Roo 소스 다운로드 하기
git clone git://git.springsource.org/roo/roo.git


2. GPG Key 생성하기
gpg --gen-key
gpg --list-secret-keys

ex)
-----------------------------------------------------
sec   1024D/8F0B35B1 2010-06-14
uid                  sunghan yun <yunsunghan@gmail.com>
ssb   1024g/2973172A 2010-06-14


3. Maven 빌드하기
mvn install


주의)
'Enhance Roo build to support wrapping arbitrary JARs as OSGi bundles'된 리비전에서는 빌드
에러가 발생함.
Older 버전에서는 에러를 피할수 있을 것임.

roo>git reset --hard
HEAD is now at 67fc22c ROO-977: Enhance Roo build to support wrapping arbitrary JARs as OSGi bundles


또, 언제 테스트해볼지 모르겠지만... 허망하네 -.,-;

[추가]
Wolfram이 오류내용을 확인해 주었다. warpping 프로젝트를 먼저 빌드한후 빌드하면 된단다. 왜 그런지는 여기 Wolfram 댓글 참조할 것.(Readme.txt 파일에 'OSGI WRAPPING JARS' 항목에 설명이 추가 되어 있다)

더보기


저작자 표시
신고
posted by Max.
prev 1 next