vi 단축키 모음입니다.
단축키를 잘활용하여 능률적으로 작업하셉숑 !? ㅋㅋ
-_-ㅎ
Category Archives: 개발도구 Tip
개발 도구에 대한 간략한 팁, 활용 방법을 기록합니다.
젠킨스 설정하기
좋은 자료가 있어서 공유합니다 ^^;
젠킨스 설정 고고싱
www.slideshare.net/slideshow/embed_code/32495866
참고하면 도움됩니다. ㅎㅎ
이클립스 단축키 모음
유용한 이클립스 단축키 !
단축키를 잘활용하면 능률업 ! 속도 업 ! ㅋ
http://javakorean.com/wp2/wp-content/uploads/2014/07/lk310000000000.pdf
참고하면 도움 됩니다.
Protocol https not supported or disabled in libcurl 에러
맥 메이븐 설치하기…
오늘은 Mac Os 에 메이븐을 설치해 보겠습니다.
1. 메이븐 파일 다운로드
http://maven.apache.org/download.cgi
위 주소로 가서 최신 메이븐 파일을 다운로드 받습니다.
(저는 binary.tar.gz 를 받았습니다.)
2. 다운로드 압축 해제
맥 터미널에서는 리눅스 명령어를 그대로 사용해도 되기 때문에 압축 해제 명령어를 실행 합니다.
다운로드 받은 경로로 이동하여서 실행 합니다.
tar -zxvf apache-maven-3.1.1.tar.gz
3. 폴더 이름 간소화
(사실 이부분은 안해줘도 되는데 ^^ 이름이 너무 길면 불편해서..)
ln -s apache-maven-3.1.1 maven
maven 이라는 이름으로 링크를 걸어 둡니다.
4. .profile 경로 설정
Home/Users 에서 해당 경로를 설정 해줍시다.
일단 .profile 을 열어 봅니다.
vi .profile
.profile 을 열어서 다음과 같이 수정합니다. 메이븐 환경 변수를 설정 한후
source .profile 을 실행합니다.
(변경된 .profile을 적용 하는 명렁어 입니다.)
5. 메이븐 설치 확인
mvn -version
맥북에서 메이븐 설치 끝 ~~~ !
메이븐 dependency 조회 하기
http://mvnrepository.com
에서 Maven의 중앙 리파지토리에 등록된 POM 정보를 검색할 수 있습니다.
이 사이트를 통해 라이브러리의 dependency 설정을 조회하여 적용할 수 있습니다.
쉽고 빠른 검색, 행복한 자바 빌드
GitHub Private 결제 했습니다. 나만의 저장소 시작
Git 을 이용하면서 편리하게 사용해주기 위한 웹 사이트가 있다
바로 GitHub 사이트다.
무료로 호스팅 해주는 대신
리누스 형님의 오픈 마인드를 더하면
누구나 공개 소프트웨어를 저장소에 올리는 샘이다.
나도 몇건 올려 놨는데 ^^;;
일단 오늘은 회사 업무차 회사에서 관리하는 코드내용을
공개하면 안되기 때문에 GitHub Private 저장소를 결제했다.
각 결제 버전마다 이름이 알맞게? 붙여진것 같다.
Micro, Small, Medium, Large…
가격은 $ 로 잘 표기 되어있다. ㅎㅎ 일종의 호스팅 비용이라 생각하자 ^^;
난 이중에서 Small 버전을 선택했다.
Private 저장소를 10개 생성 한다고 나와있다 ^,^ 다 채울날이 올런지..
하여간 , 자신의 여건에 맞는 결제버전을 선택한다.
또 한번 느끼는 부분이지만, 외국 사이트는 신용카드 결제가
너무 편하다.. ㅠㅠ 몇가지 정보만 입력하면 결제가 끝 !
순식간에 결제가 완료됬다.
캡쳐로 준비 못하였지만, 결제를 완료하고 나서 매달 결제가 될지 하는 부분도
설정 할 수 있다.
앞으로 Private 저장소로 비밀 프로젝트를 해볼 멋진생각을 하며…
Git 카테고리가 추가 되었습니다.
분산버전관리시스템 줄여서 Git 이라 부른다…
리누즈 형님이 또 한건 하셨다.. 사실 위키에 보면 잘 나와있지만
리누즈 형님이 커널 개발에 이용하려 개발하였다고 나온다.
불과 몇년 전까지만해도 인기가 없었지만,
어느새, 형상관리 툴에 다크호스로 군림하여, 최고의 자리까지 넘보고있다.
이미, 많은 블로거님들 사이트에 소개가 있으니 난 패스…
사실 2012년에 진행된 안드로이드 프로젝트에서 팀원들 과 함께
Git을 사용한적이 있다. 그냥 딱 한마디로 너무 좋다..
다른 형상관리 시스템과는 ^^; 또 다른 맛이 있따.
근데 그 맛에 중독 된다…ㅋㅋ
이클립스에도 역시 Egit 플러그인 등 쉽고 편리하게 사용할수있는
기능들이 존재한다.
그럼 이번 카테고리에서는 Git Bash 를 이용한
Git 커맨드 정리와 전반적인 Git 시스템에 대해 정리 한다.
자주 협업을 하거나 팀원들 간에 작업이 많이 있지는 않지만,
내가 작업하는 코드에 버전 관리와
먼 훗날 협업하며 진행할 프로젝트에 대비하여
난 오늘도 Git으로 삽질한다.
-ps 삽질을 줄이려면 많이 해보고, 생각하고, 먼저 삽질한 사람들 경험담을 들어보는게 최고다.
나도 누군가에게 도움이 될지 모르니 삽질 내용 삽질 경험담 ^^ 등을 공유 하고자 한다.
jenkins 포트 변경.
hudson.war 파일은 내부에 Winstone이라는 웹서버를 포함하고 있습니다.
기본포트는 8080과 ajp13 연결포트인 8009를 사용하고 있지요.
톰캣 등과 같은 서버에서 포트가 겹칠 경우 이 포트를 바꾸려면 다음과 같이 옵션을 주면 됩니다.
톰켓 같이 이용시에는 둘중에 하나는 변경을 해주는것이 좋겠네요,
java -jar jenkins.war –httpPort=7070 –ajp13Port=-1
옵션을 줄때는 – – 입니다.
-1은 사용하지 않는다는 뜻입니다. 위의 경우 7070포트로 접근이 가능합니다.
자바 빌드 툴 [ jenkins ]
Jenkins는 반복되는 job들에 대한 실행을 모니터 하는 award-winning application 입니다. 예를 들어 소프트웨어 프로젝트를 빌드한다던가 cron에 의해 실행되는 job들 같은 경우 이지요. 그런 일들 중에 현재 Jenkins는 아래 두가지 job들에 포커스를 맞추고 있습니다.
Building/testing software projects continuously, just like CruiseControl or DamageControl. Jenkins는 지속적으로 integration이 진행되는 시스템 에서 이러한 일들을 쉽게 사용할 수 있도록 해 줍니다. 개발자들이 프로젝트를 진행하면서 이루어 지는 integrate change들을 쉽게 진행할 수 있도록 해 주는 것이죠. 그리고 빌드 하는 작업도 쉽게 진행하도록 도와 줍니다. 자동화되고 지속적인 빌드는 생산성을 높여줍니다.
cron job들과 procmail job들 같은 외부에서 실행되는 job들에 대한 모니터링을 합니다. 원격에서 실행되는 job들에 대한 모니터도 가능합니다. 예를 들어 cron의 경우 output을 capture 한 정기적인 이메일을 받는 일등이 있을 수 있습니다. 여러분은 정기적으로 이 이메일을 점검함으로서 뭔가 이상이 있을 때 이것을 알아챌 수 있는 것입니다. Jenkins는 이런 output들을 보관하고 뭔가 이상이 있을 때 여러분이 알아채기 쉽도록 도와줍니다.
하지만 지금 공부하고 있는 Jenkins의 로고는 아래 이미지 입니다.
Who is using it?
많은 회사들과 기관들이 이 Jenkins를 사용하고 있습니다. 대부분의 instance들은 firewall 안에서 실행되죠. 구글 같은 경우에는 public하게 visible한 instance들을 사용하기도 합니다. 여기를 보시면 anonymouse usage를 수집한 통계 자료를 보실 수도 있습니다.
Features
Jenkins 에는 아래와 같은 기능들이 있습니다.:
Easy installation: Just java -jar jenkins.war, 혹은 a servlet container 내에 deploy. 다른 추가적인 인스톨 필요 없음. 데이타베이스 필요 없음.
Easy configuration: web GUI를 통해서 쉽게 configuration을 할 수 있음. 실시간으로 에러 확인이 가능하고 inline help를 받을 수 있음. XML를 수정하고 하는 작업이 필요 없음. XML을 통해서 configuration을 하고 싶으면 그렇게 할 수도 있음
Change set support: Jenkins는 Subversion/CVS로부터 빌드하면서 만들어진 변화들의 리스트를 generate 할 수 있음. 이것은 repository 의 load를 줄이기 위한 아주 효율적인 방법입니다.
Permanent links: Jenkins는 대부분의 페이지에 대해 깔끔하고 가독성 있는 URL을 제공합니다. “latest build”/”latest successful build” 같은 permalinks등을 포함해서요. 그래서 다른 곳에서도 쉽게 링크 작업을 할 수 있습니다.
RSS/E-mail/IM Integration: Monitor build results by RSS or e-mail to get real-time notifications on failures. failure에 대한 실시간 notification들을 얻기 위한 RSS나 이메일에 의한 빌드 결과 모니터 함.
After-the-fact tagging: 오래전에 빌드가 완료된 것에 대해서도 tag가 가능합니다.
JUnit/TestNG test reporting: JUnit test report를 보여 줍니다. history 정보도 보여주고요. history trend도 그래프로 보여줍니다.
Distributed builds: Jenkins can distribute build/test loads to multiple computers. This lets you get the most out of those idle workstations sitting beneath developers’ desks.
File fingerprinting: Jenkins can keep track of which build produced which jars, and which build is using which version of jars, and so on. This works even for jars that are produced outside Jenkins, and is ideal for projects to track dependency.
Plugin Support: Jenkins can be extended via 3rd party plugins. You can write plugins to make Jenkins support tools/processes that your team uses.
Jenkins Best Practices
최근 automated test를 진행하는 Continuous Integration에서 Jenkins를 많이 채택하고 있습니다. CI(Continuous Integration)의 개념이 이제는 Build Management, Release Management, Deployment Automation, and Test Orchestration 쪽으로 바뀌고 있습니다. 이 섹션에서는 Jenkins를 사용하기 위한 best practic 들의 세트를 제공합니다. – A Continuous Integration Solution to provide executives, business managers, software developers and architects a better sense of the development progress and code quality of projects throughout the development lifecycle. (View Jenkins Best Practices)
Introductory Articles
아래 링크들 중 많은 부분이 Hudson을 참조하고 있습니다. Jenkins의 원래 이름이 Hudson 이었습니다.
- http://linsolas.developpez.com/articles/hudson/ (French)
- http://www.slideshare.net/carlo.bonamico/continuous-integration-with-hudson/
- Kohsuke presenting Hudson in FOSDEM 2008 (video)
- Introduction to Hudson (French)
- Introduction and best practice by Kohsuke (Japanese)
- Introdución a Hudson (Spanish)
- Kohsuke presenting Hudson in JavaZone 2009 (video)
- Hawebs.net docs for Hudson (简体中文 Simplified Chinese)
- Hudson Wiki – Hudson 中文维基 (简体中文 Simplified Chinese)
- Continuous Integration in the Cloud with Hudson JavaOne 2009 presentation by Kohsuke (English)
- Doing More With Hudson JavaOne 2010 presentation by Kohsuke
- Hudson presentation at San Francisco JUG by Kohsuke (English, video and slides)
- Continuous integration with Jenkins CI (Czech)
Test Drive
test drive를 위해 Java Web Start를 통해서 Jenkins를 시작합니다. jenkins가 시작되면 dashboard를 얻기 위해 http://localhost:8080/로 갑니다. 이 Jenkins에 여러분이 세팅한 configuration은 ~/.jenkins에 저장됩니다. Jenkins가 restart 하게 되면 이 저장된 configuration을 참조해서 계속 적용되게 됩니다.
Installation
Jenkins를 실행하려면 JRE 1.5 버전 이상이 깔려 있어야 합니다. 그 다음 jenkins.war를 다운 받은 후 java -jar jenkins.war 라는 명령어를 통해서 이것을 실행 시킬 수 있습니다. 이것은 기본적으로 test drive와 같은 set up 인데요 다만 oupput 이 윈도우가 아니라 콘솔로 가는 것이 다릅니다.
그리고 여러분이 Glassfish, Tomcat 5, JBoss, Jetty 6 같은 Servlet 2.4/JSP 2.0 이후 버전을 지원하는 서블릿 콘테이너를 가지고 있다면 jenkins.war를 다른 WAR 파일처럼 deploy 할 수 있습니다. container-specific installation instruction 에 대해 좀 더 자세히 할고 싶으시면 이 문서를 보세요.
일단 war 파일이 explod 되면 jenkins/WEB-INF directory 안에서 chmod 755 jenkins를 해 주세요. 이렇게 해야 이 shell script를 실행할 수 있습니다.
만약 Window에서 실행한다면 Jenkins를 service로서 실행해야 할 겁니다. 그래야 자동적으로 start up 시킬 수 있을테니까요. 이렇게 하기 위한 가장 쉬운 방법은 Jenkins를 native Windows installer를 다운받아 인스톨 하면 됩니다. 이 파일은 Jenkins main page에서 다운 받으실 수 있습니다. .zip 파일을 다운 받으신 후 압축을 풀고 인스톨 파일을 클릭하시기만 하면 설치 마법사를 통해 설치하실 수 있습니다. 이 설치 마법사가 Jenkins를 인스톨 하고 Jenkins Windows service도 셋업해 줄 겁니다.
Jenkins를 서비스로 등록할 수 있는 다른 방법은 톰캣을 서비스로서 인스톨하고 Jenkins를 이곳에 deploy 하는 방법도 있습니다. 그리고 Java Service Wrapper를 사용할 수도 있구요. 그런데 service wrapper를 사용하면 약간의 문제가 있을 수도 있습니다. 왜냐하면 디폴트 namespace에 있는 Jenkins의 Main 클래스가 이 service wrapper main class와 충돌할 수 있기 때문이죠. service container (Tomcat, Jetty, etc.) 안에 deploy 하는 것이 아마 좀 더 직관적일 겁니다. 이와 관련해 별로 경험이 없는 개발자들도 쉽게 하실 수 있습니다.
다양한 환경에서 다른 사람들은 Jenkins/Hudson을 어떻게 deploy 했는지 보시려면 아래 링크들을 참조하세요.
- Case study of Sven Reimers
- Case study of Kohsuke Kawaguchi
- Case study of Rhett Sutphin
- Case study of Ned Collyer
- Case Study of Arnaud Lacour
- Case Study of JBoss
- Using Hudson with Tibco BusinessWorks
- Case Study of Xuggler and Red5
- Case Study of ADempiere
- we’d love to list yours here. Please talk to us.
License
The license for the core might be found athttps://github.com/jenkinsci/jenkins/blob/master/LICENSE.txt