'56. Eclipse Etc...'에 해당되는 글 70건

  1. 2014.05.30 [펌] 이클립스 Indigo SVN 설치
  2. 2014.04.23 [eclipse]org.springframework.beans.factory.BeanCre Error creating bean with name 'exceptionTransfer'
  3. 2014.02.07 [펌] Tomcat Context Reloader
  4. 2014.02.06 eclipse tomcat publish
  5. 2014.01.22 [펌] [Eclipse]Courier New 폰트
  6. 2014.01.10 [펌] Eclipse에서 JavaDoc 생성시 javadoc unmappable character for encoding MS949 에러
  7. 2014.01.08 [펌] No grammar constraints (DTD or XML schema) detected for the document.
  8. 2014.01.08 [펌] Eclipse 에서 pom.xml 파일에 validation error mark
  9. 2014.01.03 [펌] eclipse 죽는문제 1
  10. 2013.11.20 [펌]eclipse 에서 java.lang.OutOfMemoryError 발생 시 조치 방법
  11. 2012.10.03 Aptana Studio Eclipse Plug-in Installation
  12. 2012.09.20 http://joke00.tistory.com/18
  13. 2012.09.20 이클립스에서 개발하다 보면 interface 클래스를 많이 사용하게 되는데..
  14. 2012.09.15 eclipse.ini 설정법 정리
  15. 2012.09.08 이클립스 속도 향상 (eclipse.ini 수정)
  16. 2012.08.14 eclipse 소스 적용안될때, 소스 프리징현상
  17. 2012.07.17 [펌] EgovFrameWork 2.0 TextBook
  18. 2012.05.11 M2E plugin execution not covered
  19. 2012.05.11 Can't use maven-remote-resources-plugin with m2e 1.0
  20. 2012.05.02 [Eclipse] 파일 또는 디렉토리를 버전관리 대상에서 제외하는 법
  21. 2012.05.02 사람을 위한 자동화: Eclipse 플러그인으로 코드 품질 높이기
  22. 2012.02.01 eclispe jar 만들기 (외부 jar 포함)
  23. 2011.11.14 java.lang.OutOfMemoryError: Java heap space발생시 tomcat memory option
  24. 2011.08.25 eclipse. Java heap space 오류
  25. 2011.08.25 이클립스 console 창에 한글 깨질때
  26. 2011.08.04 이클립스 메모리 늘리기
  27. 2011.08.03 [Eclipse Plugin]엄청 좋은 ~ ActionScript, MXML Code Formatter
  28. 2010.11.29 Eclipse plugin 추천세트
  29. 2010.10.29 eclipse plugin 설치 방법 - Properties Edit Plugin
  30. 2010.10.19 Eclipse Helios와 JDK 6u21를 사용할 때 OutOfMemory 오류가 발생하는 문제
56. Eclipse Etc.../Eclipse2014. 5. 30. 11:05
반응형

출처 : http://jungkun86.egloos.com/4139049


컴퓨터를 포맷하는 바람에, 이클립스를 새로 설치하면서 관련된 플러그인을 설치했다.

subversive 플러그인을 설치한 후 이클립스를 재기동하니, SVN connector를 선택하라는 팝업이 하나 뜬다.

무심하게 취소를 눌렀더니, SVN connector가 설치가 안되었다 --;

이클립스를 재기동하고, subversive 플러그인을 삭제후 재설치해도 SVN connector가 설치되지 않는다.


그렇다면 

http://community.polarion.com/projects/subversive/download/eclipse/3.0/juno-site/ 

에서 직접 설치할 수 있다.

Posted by 1010
56. Eclipse Etc.../Eclipse2014. 4. 23. 18:36
반응형

org.springframework.beans.factory.BeanCreationException: Error creating bean with name'exceptionTransfer'

 

조치방법 : pom.xml 의내용을전부컨트롤 + x 후저장. 이클립스빌드가끝나면다시컨트롤 + v 저장빌드가끝나면실행.

 

출처 : http://enspring.tistory.com/51

Posted by 1010
반응형

출처 : http://kwonnam.pe.kr/wiki/java/tomcat/contextreload

Tomcat Context Reloader

Tomcat의 컨텍스트를 reloadable=“false”인 상태에서, Tomcat Manager를 설치하지 않은 상태에서 수동 Reload 할 수 있는 Valve를 만들어 보았다. Reload Tomcat Context manually(without manager or reloadable=“true” option).

설정

  • Tomcat Reload Valve 소스와 Jar 파일에서 tomcatreloadvalve.jar 파일을 $CATALINA_HOME/lib 로 복사한다.
  • server.xml 혹은 context.xml의 <Context> 항목에 Valve를 추가한다. 항상 <Context> 항목에만 추가해야 한다.
    <Context docBase="some" path="/some" reloadable="false" >
        <Valve className="kr.pe.kwonnam.tomcat.reloader.TomcatReloadValve"/>
    </Context>
  • reloadable=“false”로 둔다. 원래 이 Valve의 목적은 자동 Reloading을 끄고, 항상 수동으로 원하는 경우에만 Reloading하는 것이다.

실행

  • 웹브라우저 혹은 wget 등으로 http://localhost:8080/reloadContext 를 호출한다.
  • 실제 URL의 도메인네임 부분은 자신의 톰캣 설정을 따른다.
  • “Context Reloaded!!” 메시지가 나오면서 Reloading이 완료된다.

소스

package kr.pe.kwonnam.tomcat.reloader;
 
import java.io.IOException;
 
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletResponse;
 
import org.apache.catalina.Container;
import org.apache.catalina.Context;
import org.apache.catalina.connector.Request;
import org.apache.catalina.connector.Response;
import org.apache.catalina.valves.ValveBase;
 
/**
 * Reload Tomcat Context by requesting URL
 *
 * Context의 reloadable="false"인 상태에서도 /reloadContext URL을 호출하면 해당 컨텍스트가 Reloading 된다.
 *
 * @author 손권남 kwon37xi@gmail.com
 *
 */
public class TomcatReloadValve extends ValveBase {
 
	private static final String RELOAD_CONTEXT_URI = "/reloadContext";
 
	@Override
	public void invoke(Request request, Response response) throws IOException,
			ServletException {
 
		Container container = getContainer();
 
		String requestUri = request.getRequestURI();
 
		String reloadUri = request.getContextPath() + RELOAD_CONTEXT_URI;
 
		if (requestUri.startsWith(reloadUri)
				&& container instanceof Context) {
			reloadContext(response, container);
			return;
		}
 
		getNext().invoke(request, response);
	}
 
	private void reloadContext(Response response, Container container)
			throws IOException {
		((Context) container).reload();
		HttpServletResponse httpResponse = response.getResponse();
 
		httpResponse.setContentType("text/plain;charset=utf-8");
		httpResponse.getWriter().write("Context Reloaded!!");
		httpResponse.getWriter().close();
 
		return;
	}
 
}

 

Posted by 1010
반응형

While on Tomcat 6 and Eclipse Ganymede I found out the following chain to work like charm:

1 stop server

2 project -> clean

3 project build (I had automatic build disabled)

4 delete server

5 delete Servers folder

6 restart Eclipse

7 create new server, add project and start :)

Posted by 1010
56. Eclipse Etc.../Eclipse2014. 1. 22. 14:42
반응형

[Eclipse]Courier New 폰트

 

 

증상 : Eclipse Indigo> Window-Preference-General-Appearance-Colors and Font 에서 Courier New 폰트가 존재하지 않는 현상

 

해결 방법 : C:\Windows\Fonts 에서 Courier New 폰트를 우클릭 - 표시 하여 숨김 해제 한다. 

 

Posted by 1010
56. Eclipse Etc.../Eclipse2014. 1. 10. 12:44
반응형

Eclipse에서 javadoc 생성을 하려는데
아래와 같은 에러가 났습니다.

javadoc unmappable character for encoding MS949


코드의 주석에 한글(UTF-8로 인코딩된)을 써서 그런 것 같아 구글링 해봤더니 역시나 그 문제 였네요.

해결 방법은 아래 창이 나타났을 때
VM options

-encoding UTF-8


을 적어주면 해결 됩니다.
그러면 한글이 포함된 JavaDoc을 생성할 수 있습니다.

 


출처 : http://kkoseul.tistory.com/154

 

Posted by 1010
반응형

No grammar constraints (DTD or XML schema) detected for the document.

신경쓰이게 xml 파일에 warnning 이 나오는데 여간 신경 쓰이는 것이 아니었다.

처음 프로그램 배울 때 작은 warnning 이라도 무시 말라고 했건만...... 쩝

검색과 지식의 양을 늘리는 길만이 살길인것 같다.

 

[Eclipse] Galileo 버전 기준으로

Window - Preoferences - XML - XML Files - Valodation 에서 indicate when no grammar is specified 값을

Warnning 에서 Ignore 로 변경 한다. 

 

그러면 눈에 가시였던 줄과 warnning 이 사라진다.

 

[추가]

[펌] 엄지 사랑님이 작성

 

만약 아래와 같이 했는데도 적용이 되지 않는다면 Project -> Clean 을 통해 해당 프로젝트를 리빌드한다.

 

참고사이트
http://www-01.ibm.com/support/docview.wss?rs=2044&context=SSCM72&dc=DB560&dc=DB520&uid=swg21330232&loc=en_US&cs=UTF-8&lang=en&rss=ct2044rational

 

<script src="http://fordev.tistory.com/plugin/CallBack_bootstrapper?&src=http://cfs.tistory.com/blog/plugins/CallBack/callback&id=35&callbackId=fordevtistorycom353310&destDocId=callbacknestfordevtistorycom353310&host=http://fordev.tistory.com&float=left&random=395"></script>

 

Posted by 1010
반응형

Maven project 를 import 하였을 때 pom.xml 파일에서 다음과 같은 validation error 가 표시될 경우.(실제로 pom.xml 파일이 문제가 없는데도 불구하고)


다음의 플러그인을 설치해 주고 proejct rebuild(clean) 해주면 error mark 가 사라진다.
https://repository.sonatype.org/content/repositories/forge-sites/m2eclipse-tycho/0.6.0/N/0.6.0.201112050222/





Posted by 1010
반응형

출처 : http://donzbox.tistory.com/478

# 증상 : Eclipse 강제종료 후 Eclipse 실행시 아래와 같은 alert 메시지 발생 후 실행이 안됨

alert Message :


.log Error Message :

!ENTRY org.eclipse.core.resources 2 10035 2013-05-30 16:23:36.686
!MESSAGE The workspace exited with unsaved changes in the previous session; refreshing workspace to recover changes.

!ENTRY jp.gr.java_conf.ussiy.app.propedit 1 0 2013-05-30 16:23:39.556
!MESSAGE properties loading 'DevWork'

!ENTRY jp.gr.java_conf.ussiy.app.propedit 1 0 2013-05-30 16:23:39.566
!MESSAGE properties loading 'RemoteSystemsTempFiles'

!ENTRY jp.gr.java_conf.ussiy.app.propedit 1 0 2013-05-30 16:23:39.566
!MESSAGE properties loading 'Servers'

!ENTRY jp.gr.java_conf.ussiy.app.propedit 1 0 2013-05-30 16:23:39.566
!MESSAGE properties loading 'htmlWork'

!ENTRY jp.gr.java_conf.ussiy.app.propedit 1 0 2013-05-30 16:23:39.566
!MESSAGE properties loading 'kofia_user'


# 해결 :

%ECLIPSE_HOME%workspace\.metadata\.plugins\org.eclipse.e4.workbench\workbench.xmi 파일 삭제

(workbench.xmi 기존 작업에 대한 세팅이 저장되어 있는 File )


참고 사이트 :

ApexSoft DevArtMent

URL : http://apexsoftdevartment.blogspot.kr/2012/11/blog-post.html

 

Posted by 1010
56. Eclipse Etc.../Eclipse2013. 11. 20. 15:08
반응형

출처 : http://kogun82.tistory.com/82

이클립스에서 프로그램 실행시 힙 메모리 부족 오류가 발생하면 아래와 같은 메시지가 출력된다.

java.lang.OutOfMemoryError: Java heap space

java.lang.OutOfMemoryError: PermGen space

문제 해결을 휘애 대부분이 사용하는 방법은 Run/Debug 설정창에서 vmargs를 설정하는 것이다.
하지만 이렇게 하면 각 각의 Run Conf 설정마다 입력해야 하는 불편함이 있다.

eclipse.ini 파일을 아래와 같이 설정한다.

-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.200.v20120522-1813
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vmargs
-Xms1024m
-Xmx2048m

그리고 프로젝트 실행 시 자바 Heap, Permanent 메모리를 설정하기 위해 eclipse의 Window -> preferences -> Java -> Installed JRES -> 체크된 jdk / jre를 선택하고 아래의 그림과 같이 설정한다.(-XX:PermSize=2048M -Xms=2048 -Xmx4096m)


만약 프로젝트마다 다른 메모리 설정 값이 필요한 경우  Run config에서 VM args를 각 프로젝트마다 설정 하면된다.

Posted by 1010
56. Eclipse Etc.../Eclipse2012. 10. 3. 01:37
반응형

Eclipse Plug-in Installation

Installing via Eclipse

Please copy the following Update Site URL to your clipboard and then follow the steps listed below to add this URL to your Available Software Sites list. Attempting to access this URL using your web browser will return an Access Denied error.

http://download.aptana.com/studio3/plugin/install

  1. From the Help menu, select Install New Software... to open the Install New Software dialog.
  2. Paste the URL for the update site into the Work With text box, and hit the Enter (or Return) key.
  3. In the populated table below, check the box next to the name of the plug-in, and then click the Next button.
  4. Click the Next button to go to the license page.
  5. Choose the option to accept the terms of the license agreement, and click the Finish button.
  6. You may need to restart Eclipse to continue.

Welcome!

If you are reading this, we'd like to thank you for your interest Aptana Studio. Please read through this guide carefully.

For Aptana Studio 2 Upgraders

Aptana Studio 3 is intended to be completely independent from Aptana Studio 2. You can install both Studio 2 and Studio 3 separately and run them both on the same machine, since they will use different workspace directories. If you wish to import your Studio 2 projects into Studio 3, you can follow instructions here.

Prerequisites

Before you install the Release, you should have the following tools installed and working correctly:

  • Sun/Oracle Java 1.5.x or later on Mac and Linux. OpenJDK is not yet supported. The Windows installer includes a compatible version of Java.
  • Git is required because it is used internally to update your scripting environment. On Windows, we recommend PortableGit from msysgit because we also require its bash shell for executing commands. If you don't have msysgit installed, Studio 3 will offer to install it for its own internal use.
  • If you are installing Studio 3 as an Eclipse plugin, you must use Eclipse 3.5 or better.

If you intend to do Ruby on Rails development, you will also need to set up your Ruby and Rails development environment:

  • Ruby 1.8.7+ and/or 1.9.1+ (on Windows, we recommend RubyInstaller along with its optional DevKit addon). You can use other ruby runtimes (e.g. jruby) if you like, but we expect to find ruby and gem tools on your path by name. Plus we haven't tested debugging with other interpreters yet, so debugging may not work if you use an alternate runtime.
  • Rails (2.x and/or 3.0)
  • The gem that supports the database(s) of your choice.
  • For debugging, you will need to have the ruby-debug-base and ruby-debug-ide gems installed.

You should also make sure that your login PATH is set up correctly such that you can execute the ruby, gem, rails, and git commands correctly. Setting these things up in your .bashrc (or equivalent) isn't sufficient, because it doesn't get evaluated by default when GUI applications like Aptana Studio 3 get launched.

Ruby switching utilities like rvm should also work, provided that you set them up in your login PATH as well.

If getting your login PATH set up in this way isn't practical for you, you can work around the problem by launching Aptana Studio 3 from the command line, using the studio3 command line utility. This utility can be found at the top level of the Aptana Studio 3 installation folder, so you can put that folder in your PATH for convenience. (The command line utility can also be called after Aptana Studio 3 is running, to get it to open source code files for editing.)

Update Your Installation Regularly

The IDE is configured to check for updates from our update site, and we plan on releasing new versions on a regular schedule.

Getting Started With Studio 3

Check the help system for links on geting started and how to use various features.

Providing Feedback and Reporting Bugs

  • Browse Discussions

    The active community around Aptana Studio includes documentation, Aptana communications and member conversations.
  • Bug Tracker

    Found a bug? Use our bug tracker to see the list of open and closed bugs as well as submit new tickets.

 

Posted by 1010
56. Eclipse Etc...2012. 9. 20. 08:15
반응형

출처 : http://joke00.tistory.com/18 

자바_한글_api.part01.exe

자바_한글_api.part02.rar

자바_한글_api.part03.rar

 


1. 첨부된 파일을 다운받아 한 폴더에 넣습니다



2. 자바_한글_API_par01.exe 를 실행시킨후 저절로 api라는 이름으로 압축이 풀립니다.
그러면.... 이클립스가 설치된 폴더 안에 넣습니다.

난, C:\program files\ eclipse 폴더에 넣습니다. 뭐를? api 폴더를~


3. 이제 이클립스를 실행 시킵니다.

4. 이클립스 실행 후에 프로젝트 중 아무거나 하나 클릭해서, rt.jar 파일 찾는다.



5. properties 에 들어가게 되면
type filter text > Java source Attachment 가 있는데,
여기의 Location Path 부분을 지운다


6. Javadoc Location 에 가면 javadoc URL 설정부분에서....
아까 압축받아서 푼 API 를 넣어준 이클립스 경로를 브라우저 눌러서 찾아서 API/ 까지 등록



7. 자, 이제 원초적인 JAVA API 는 한글로 편히 볼 수 있다 ㅋㅋㅋ


 

Posted by 1010
56. Eclipse Etc.../Eclipse2012. 9. 20. 07:44
반응형

출처 : http://joke00.tistory.com/56

이클립스에서 개발하다 보면 interface 클래스를 많이 사용하게 되는데..
특히 스프링을 사용하거나 프레임 웍을 사용하다 보면 interface 클래스를 많이 쓰게 된다.
이때, 컨트롤을 누르고 메소드를 클릭하게 되면 interface 메소드로 가게 되있는데,
이 implementors 플러그 인은 말 그대로 해당 interface 가 아니라 interface 구현체인 implements 메소드를
찾아갈 수 있게끔 하는 플러그인이다.

꽤 유용할듯~

자, 이제 설치해 봅시다

URL : http://eclipse-tools.sourceforge.net/updates

1. 이클립스의 [help] - [Install New SoftWare] 를 선택합니다. (3.5 갈릴레오 기준)



2. 선택 후 next~



3. 이 플러그인은 다른것들과는 다른 accept 창이 나오니, 당황하지 마시고, 동의하고 next 넘어가면 됩니다.



4. 무지 빠른 속도로 install 되니, 어디 가지 마세요 ^^




5. 설치가 끝난 후 어김없이 뜹니다. "지금 당장 재부팅 하시꺼유?" YES!



6. 자, 한번 테스트 해 봅시다.

getData 라는 interface 메소드가 있는데, 이전 같으면 Ctrl + 누른후 마우스를 가져다 대면 interface 클래스로 이동했는데, 이번엔 선택하도록 나옵니다.

open Declaration -> interface 클래스의 메소드로 이동 ==> F3
open Implementation -> interface 를 implements 한 class 의 메소드로 이동 => Alt + F3



나 이거 캡쳐하느라 애 좀 먹었다규;;; -_-;;;;

단축키 이동이 불편하다면,
[Window] - [preference ] - [General] - [keys] 에서 재 등록 하시면 됩니다.




 

Posted by 1010
56. Eclipse Etc...2012. 9. 15. 08:07
반응형

-vm
경로

=> jdk경로 지정, -vmargs 이전에 작성해야함

-Dosgi.requiredJavaVersion=1.5 : jdk 버젼이 1.6 일 경우 1.6 으로 적으면 더 빨라짐
-Xms256m : 초기 시작시 메모리 크기(jvm Heap Space)
-Xmx512m : 최대 사용 메모리 크기
-XX:PermSize=64m : 클래스정보 저장 메모리 크기
-XX:MaxPermSize=128m : 클래스정보 저장 최대 메모리 크기(기본값이 8M 라고 함)


* PermGen 영역 설정
jvm 의 메모리 영역 중 PermGen 영역이 존재함
이 영역은 gc에 의해 소거되지 않는 데이터들이 저장되며
순수 class의 정보들(instance가 아닌)이 저장된다.

이 영역이 가득 찰 경우 out of memory 가 발생한다.

(XX는 표준이 아닌 경우라고 한다. 그러므로 작동할지 않을지는 확신할 수 없다고 한다.)


* 속도 향상 ini
-vmargs
-Dosgi.requiredJavaVersion=1.6
-Xvirify:none : 클래스 유효성 검사 생략
-XX:+UseParallelGC : 병렬 gc 사용
-XX:-UseConcMarkSweepGc : 병행 mark-sweep GC 를 수행하여 gui응답을 빠르게 함
-XX:+AggressiveOpts : 컴파일러의 소수점 최적화 기능 작동
-XX:PermSize=128M : Permanent Generation 크기
-XX:NewSize=128M : New Generation 크기
-XX:MaxNewSize=128M : New Generation 최대 크기
-Xms512M : 최소 Heap Memory Size
-Xmm512M : 최대 Heap Memory Size
=> 최대값과 최소값을 같게 해주면 오르락 내리락 하는 경우가 적어 빨리진다고 함


* 추천 Heap Size
1기가 : 256
2~3기가 : 512
4기가 : 1024


* JVM메모리 공간
1. Permanent : class와 method 정보
2. New/Young : 새로 생성되는 instance
3. Old : 만든지 오래된 instance


* 참고 url
http://babolsk.tistory.com/119

[출처] eclipse.ini 설정법|작성자 세직사

 

Posted by 1010
반응형

이클립스 속도 향상 (eclipse.ini 수정)


최근 이클립스가 버벅대서 오랜만에 이클립스 속도 향상 정보를 정리해본다.


eclipse.ini 수정


1) Before


-startup

plugins/org.eclipse.equinox.launcher_1.1.0.v20100507.jar

--launcher.library

plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.1.R36x_v20100810

-product

org.eclipse.epp.package.jee.product

--launcher.defaultAction

openFile

--launcher.XXMaxPermSize

256M

-showsplash

org.eclipse.platform

--launcher.XXMaxPermSize

256m

--launcher.defaultAction

openFile

-vmargs

-Dosgi.requiredJavaVersion=1.5

-Xms40m

-Xmx512m



2) After


-vmargs

-Dosgi.requiredJavaVersion=1.6

-Xverify:none

-XX:+UseParallelGC

-XX:-UseConcMarkSweepGC

-XX:+AggressiveOpts

-XX:PermSize=128M

-XX:MaxPermSize=128M

-XX:MaxNewSize=128M

-XX:NewSize=128M

-Xms512m

-Xmx512m


3) 설명

-Dosgi.requiredJavaVersion=1.6 => JDK 1.6 이상을 설치했을 경우에 1.6으로 설정하면 속도가 빨라진다.

-Xverify:none => 클래스의 유효성을 검사 생략. (시작 시간이 줄어 빨라진다.)
-XX:+UseParallelGC => 병렬 가비지 컬렉션 사용. (병렬 처리로 속도 향상)
-XX:+AggressiveOpts => 컴파일러의 소수점 최적화 기능을 작동시켜 빨라진다.
-XX:-UseConcMarkSweepGC => 병행 mark-sweep GC 수행하여 이클립스 GUI의 응답을 빠르게한다.

-XX:PermSize=128M => Permanent Generation(영구 영역) 크기(Out Of Memory 에러시 크기 조절)

-XX:MaxPermSize=128M => 최대 Permanent Generation 크기

-XX:NewSize=128M => New Generation(새 영역) 크기

-XX:MaxNewSize=128M => New Generation(새 영역) 의 최대 크기


-Xms512m : 이클립스가 사용하는 최소 Heap 메모리
-Xmx512m : 이클립스가 사용하는 최대 Heap 메모리
최소와 최대를 같은 값으로 설정하면 오르락 내리락 하지않아 빨라진다.

혹시, 오류로 이클립스가 죽는다면 설정값을 한줄씩 지우거나 숫자를 변경해서 테스트 후 사용하기바람.

[메모리 정의 예]
1 기가 이하 메모리인 컴퓨터인 경우 => -Xms256m -Xmx256m
2 기가 ~ 3 기가 메모리인 컴퓨터 => -Xms512m -Xmx512m
4기가 이상 메모리인 컴퓨터 => -Xms1024m -Xmx1024m

[ 참고 ]
JVM 은 3가지 메모리 영역을 관리합니다.
1. Permanent(영구) 영역 : JVM 클래스와 메소드를 위한 공간. = PermSize 설정
2. New/Young 영역 : 새로 생성된 개체들을 위한 공간. = NewSize 설정
3. Old 영역 : 만들어진지 오래된 객체들의 공간.(New 영역에서 이동해 온다)



<원본글 : http://blog.naver.com/sungback/90097516641 >
Posted by 1010
56. Eclipse Etc.../Eclipse2012. 8. 14. 07:10
반응형

정확한 명칭을 몰라서 소스 프리징 현상이라 명명 한다. (검색을 해도 딱히 나오질 않는다.)


갑자기 jsp 소스를 아무리 고쳐도 소스 반영이 않될때! (java, 스크립트, html 이든 뭐든지!)

소스엔 이상이 없다고 생각하는데 무슨짓을 해도 먹통일때!
몇일동안 소스를 보고, 또 봐도 이상이 없는데 반영이 안될때!

-_- 3일동안 내가 겪은 일이다.(전에도 한번 겪은 적이 있다;; 그때도 원인을 알아내는데 2일이나 걸렸다.)

자세히 봐야할껀 두가지이다.(아직까진, 더있을지도 모른다. - 나의 경우에서만 두가지 였다.)

1. 스크립트 warning(브라우져 상에서 에러 표시조차 나지 않는다. )
- 스크립트 함수명을 잘못쓴 예. (alert 를 alter 로 썼다든지.)
개인이 작성한 함수의 경우 함수가 없다고 에러 메시지가 뜨지만, 제공하는 함수의 경우
에러메시지가 뜨지 않는 기현상을 보았다.
- 첨자, 닷을 잘못 찍으예

2. 날짜 변경에 의한 class 생성의 오류
- 만일 소스를 생성한 날짜가 12월 10일이다. 근데 어떠한 사건을 계기로 컴퓨터 시간을 12월 01일로
바꿨다면 소스 프리징을 볼수 있다. (이번에 이 경우를 보았는데..;; 정말 상상도 못했다;)

첫번째 해결 방법은 역시 워닝 부분을 찾는 수 밖에 없다. 하나하나 이름과 파라미터, 문법에 맞게
작성하였는가를 중점적으로 봐야 한다. (html,java 부분은 볼 필요가 없습니다. 오직 스크립트만 보시면
됩니다.)

두번째의 경우 생성된 서블릿파일(java, class 파일) 을 지우면 된다.
보통 톰캣의 경우 해당프로젝트\work\org\apache\jsp 에 가보면 현재 서버로 돌고 있는 파일들의
목록을 볼수 있다. 여기 있는 전부 파일(혹은 안되는 파일)을 지우면 된다. 서버를 다시 구동하면 자동적으로
생성되기 때문에 문제 될껀 없다. (소스 원본이야 따로 보관되니 백업도 필요없다.)

위의 경로에서 class, java 파일을 깡그리 지워준다.

- 혹시 이 현상에 대한 정확한 명칭이나 다른 예, 해결 방법을 알고 있다면 댓글 부탁드립니다.
Posted by 1010
56. Eclipse Etc.../Eclipse2012. 7. 17. 14:03
56. Eclipse Etc...2012. 5. 11. 01:08
반응형

M2E plugin execution not covered

M2E
Website
Download
Community
Mailing List • Forums • IRC
Bugzilla
Open
Help Wanted
Bug Day
Contribute
Browse Source


Contents

 [hide]

Background

m2eclipse 0.12 and earlier executed some parts of Maven build lifecycle inside Eclipse and then configured the Eclipse project based on after-execution state collected in MavenProject. This was controlled by many different sets of maven goals -- goals when projects were imported, project configuration changes and workspace full and incremental builds. Some of these goals were configured at workspace level, some in project/.settings. On top of that, there was project-level setting to "skip" maven-compiler-plugin execution.

Unfortunately, this did not work well or not at all for many projects. Probably even worse, it did not *always* work for many projects, so we had to go through series of refresh/update dependencies/update configuration/rebuild voodoo (or "m2eclipse dance" as some called it) to get projects in a good state. For example MNGECLIPSE-823 was the most voted issue in m2e jira and it was a direct manifestation of this "flakiness".

Most, if not all, such problems were traced back to one of two root causes. 1. Out-of-workspace resource changes made by Maven plugin triggered unexpected workspace builds. This was very indeterministic. In some cases projects appeared to work fine. In some cases, generated/filtered resources would go missing. And in some cases workspace build would go on forever. 2. Various JVM and OS resources leaks by Maven plugins was another common cause of problems.

To solve these long-standing issues, m2e 1.0 requires explicit instructions what to do with all Maven plugins bound to "interesting" phases (see M2E interesting lifecycle phases) of a project build lifecycle. We call these instructions "project build lifecycle mapping" or simply "lifecycle mapping" because they define how m2e maps information from project pom.xml file to Eclipse workspace project configuration and behaviour during Eclipse workspace build.

Project build lifecycle mapping can be configured in a project's pom.xml, contributed by Eclipse plugins, or defaulted to the commonly used Maven plugins shipped with m2e. We call these "lifecycle mapping metadata sources". m2e will create error marker like below for all plugin executions that do not have lifecycle mapping in any of the mapping metadata sources.

Plugin execution not covered by lifecycle configuration:
org.apache.maven.plugins:maven-antrun-plugin:1.3:run
    (execution: generate-sources-input, phase: generate-sources)

m2e matches plugin executions to actions using combination of plugin groupId, artifactId, version range and goal. There are three basic actions that m2e can be instructed to do with a plugin execution -- ignoreexecute and delegate to a project configurator.

delegate to a project configurator (recommended)

configurator mapping tells m2e to delegate workspace project configuration mapping for matching plugin execution to an implementation of AbstractProjectConfigurator registered with m2e using projectConfigurators extension point.

In most cases configurator mapping will be used by m2e extension developers. See M2E Extension Development wiki page for more information about developing m2e extensions.

ignore plugin goal

ignore, as the name suggests, tells m2e to silently ignore the plugin execution. Here is sample pom.xml snippet

   <pluginManagement>
  <plugins>
    <plugin>
      <groupId>org.eclipse.m2e</groupId>
      <artifactId>lifecycle-mapping</artifactId>
      <version>1.0.0</version>
      <configuration>
        <lifecycleMappingMetadata>
          <pluginExecutions>
            <pluginExecution>
              <pluginExecutionFilter>
                <groupId>some-group-id</groupId>
                <artifactId>some-artifact-id</artifactId>
                <versionRange>[1.0.0,)</versionRange>
                <goals>
                  <goal>some-goal</goal>
                </goals>
              </pluginExecutionFilter>
              <action>
                <ignore />
              </action>
            </pluginExecution>
          </pluginExecutions>
        </lifecycleMappingMetadata>
      </configuration>
    </plugin>
  </plugins>
</pluginManagement>


HINT: m2e provides a quick-fix associated with "plugin execution not covered" to easily create <pluginManagement/> elements like above.

execute plugin goal

execute tells m2e to execute the action as part of Eclipse workspace full or incremental build. Beware that m2e does not provide any safeguards against rogue maven plugins that leak classloaders, modify random files inside workspace or throw nasty exceptions to fail the build. Use this as the last resort and make sure you know what you are doing.

   <pluginManagement>
  <plugins>
    <plugin>
      <groupId>org.eclipse.m2e</groupId>
      <artifactId>lifecycle-mapping</artifactId>
      <version>1.0.0</version>
      <configuration>
        <lifecycleMappingMetadata>
          <pluginExecutions>
            <pluginExecution>
              <pluginExecutionFilter>
                <groupId>some-group-id</groupId>
                <artifactId>some-artifact-id</artifactId>
                <versionRange>[1.0.0,)</versionRange>
                <goals>
                  <goal>some-goal</goal>
                </goals>
              </pluginExecutionFilter>
              <action>
                <execute >
                  <runOnIncremental>false</runOnIncremental>
                </execute >
              </action>
            </pluginExecution>
          </pluginExecutions>
        </lifecycleMappingMetadata>
      </configuration>
    </plugin>
  </plugins>
</pluginManagement>


HINT: use quick fix to create "ignore" mapping, then replace <ignore/> action with <execute/>

metadata source lookup order

m2e considers lifecycle mapping metadata sources in the following order

  1. pom.xml file of the project
  2. parent, grand-parent and so on pom.xml files
  3. installed m2e extensions (in no particular order)
  4. [m2e 1.1+] lifecycle mapping metadata provided by maven plugin (see below)
  5. default lifecycle mapping metadata shipped with m2e

m2e uses the first applicable mapping found.

lifecycle mapping metadata provided by maven plugin

Starting with m2e 1.1, maven plugin developers are able to provide lifecycle mapping metadata as part of the plugin itself. If present, such mapping metadata will be automatically used by m2e, thus eliminating the need for plugin specific project configurator and/or lifecycle mapping metadata in pom.xml.

M2E compatible maven plugins wiki page provides more information about developing m2e-compatible maven plugins that do not require external build lifecycle mapping configuration.

m2e maven plugin coverage status

groupIdartifactIdversion rangegoalsstatus
org.antlrantlr3-maven-plugin[3.1.1,)antlrorg.sonatype.m2e.antlr
org.apache.maven.pluginsmaven-jar-plugin[2.0)jarorg.sonatype.m2e.mavenarchiver.pomProperties
org.codehaus.modellomodello-maven-plugin[1.0.1,)java
xpp3-reader
xpp3-writer
xpp3-extended-reader
xsd
stax-reader
org.sonatype.m2e.modello
org.codehaus.mojoantlr-maven-plugin[2.1,)generateorg.sonatype.m2e.antlr
org.codehaus.mojobuild-helper-maven-plugin[1.0,)add-source
add-test-source
org.sonatype.m2e.buildhelper
org.codehaus.plexusplexus-component-metadata[1.0-beta-3.0.6,)generate-metadata
generate-test-metadata
org.sonatype.m2e.plexus.annotations
org.codehaus.plexusplexus-maven-plugin[1.1,)descriptor
test-descriptor
merge-descriptors
test-merge-descriptors
not supported

Help improve m2e maven plugin coverage

First and foremost, you need to understand the desired behaviour. In most cases this should be limited to IDE usecase, i.e. editing sources and running tests, and not the complete Maven build, so plugin goals that publish build results to a remote repository can be ignored without any adverse side effects, while java source code generation most likely is necessary.

If the desired behaviour is applicable to other Maven projects using the plugin goal, we strongly recommend documenting your findings in m2e bugzilla. Please use "[mojo] plugin-artifact-id:goal support" bugzilla summary and make sure to search for existing records. When submitting new request, please provide standalone example project and detailed description of desired behaviour when the project is imported in Eclipse workspace. This will allow other users and interested developers to track popularity of various Maven plugins and schedule implementation work accordingly.

M2E Extension Development has pointers how to develop m2e extensions.

Common problems

Some Maven plugins are recognized as problematic and will produce error markers with a text similar to: maven-dependency-plugin (goals "copy-dependencies","unpack") is not supported by m2e

In version 1.0 there is no quick fix available for this but it is possible to define a lifecycle mapping for the plugin as well (as shown inignore plugin goal above). Which removes the error marker.

Posted by 1010
56. Eclipse Etc...2012. 5. 11. 01:06
반응형

Execution default-resources of goal
org.apache.maven.plugins:maven-resources-plugin:2.4.3:resources
failed. (org.apache.maven.plugins:maven-resources-plugin:2.4.3:resources:default-resources:process-resources)
Execution default-testResources of goal
org.apache.maven.plugins:maven-resources-plugin:2.4.3:testResources
failed. (org.apache.maven.plugins:maven-resources-plugin:2.4.3:testResources:default-testResources:process-test-resources)

I am using STS 2.7.0 (indigo) with m2e updated to 1.0.0.20110607-2117.

Here's a minimal pom that demonstrates the issue:

<?xml version="1.0"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.decide.search</groupId>
	<artifactId>search-sa</artifactId>
	<version>1.2.4-SNAPSHOT</version>
	<build>
		<pluginManagement>
			<plugins>
				<plugin>
					<groupId>org.eclipse.m2e</groupId>
					<artifactId>lifecycle-mapping</artifactId>
					<version>1.0.0</version>
					<configuration>
						<lifecycleMappingMetadata>
							<pluginExecutions>
								<pluginExecution>
									<pluginExecutionFilter>
										<groupId>org.apache.maven.plugins</groupId>
										<artifactId>maven-remote-resources-plugin</artifactId>
										<versionRange>[1.0.0,)</versionRange>
										<goals>
											<goal>process</goal>
										</goals>
									</pluginExecutionFilter>
									<action>
										<execute />
									</action>
								</pluginExecution>
							</pluginExecutions>
						</lifecycleMappingMetadata>
					</configuration>
				</plugin>
			</plugins>
		</pluginManagement>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-remote-resources-plugin</artifactId>
				<version>1.2.1</version>
				<executions>
					<execution>
						<id>process-remote-resources</id>
						<goals>
							<goal>process</goal>
						</goals>
						<configuration>
							<resourceBundles>
								<resourceBundle>com.decide.search:search-solr-config:1.2.2</resourceBundle>
							</resourceBundles>
						</configuration>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>
</project>

Posted by 1010
반응형

이클립스에서 SVN을 이용해서 버전관리를 할때, 버전관리가 필요없는 파일을 Commit 하거나 Update 해서 오동작하는 경험을 해봤을 것이다. 이럴 경우, 아예 버전관리대상에서 제외함으로써 문제가 될 소지를 없앨 수 있다.

1. Window > Preference > Team > Ignored Resources

     버전관리 대상에서 제외시킬 파일의 패턴을 정의해 둠으로써 관리가 가능하다.

2. 동기화를 진행 > 제외하고자 하는 파일 또는 디렉토리 위에서 마우스 오른쪽 버튼 > Team > Add to svn:ignore

     해당 파일이나 디렉토리에 대해서 ignore을 설정할 수 있다.

Posted by 1010
56. Eclipse Etc...2012. 5. 2. 17:35
반응형

사람을 위한 자동화: Eclipse 플러그인으로 코드 품질 높이기

다섯 개의 유용한 플러그인으로 Eclipse 내에서 코드 품질 분석 자동화 하기

Paul Duvall, CTO, Stelligent Incorporated

요약:  코드를 빌드하기 전에 코드에서 중대한 문제를 발견할 수 있다면 어떨까요? 재미있게도, 소프트웨어에 문제가 드러나기 전에 문제를 발견할 수 있도록 해주는 JDepend와 CheckStyle 같은 Eclipse 플러그인이 있습니다. 사람을 위한 자동화 시리즈에서는, 자동화 전문가 Paul Duvall이 Eclipse에서 정적인 분석 플러그인을 설치, 구성, 사용하는 방법을 예제를 통해 설명합니다. 이제 여러분도 개발 사이클에서 문제를 조기에 방지할 수 있습니다.

이 연재 자세히 보기

이 기사에 태그:  애플리케이션_개발이클립스

원문 게재일:  2007 년 4 월 24 일 
난이도:  초급 
페이지뷰:  9932 회 
의견:   0 (보기 | 의견 추가 - 로그인)

평균 평가 등급 4 개 총 31표 평균 평가 등급 (31 투표수)
아티클 순위

시리즈 소개

개발자로서, 사용자를 위해 프로세스를 자동화 하고 있습니다. 하지만, 정작 우리들 자신의 개발 프로세스를 자동화 할 수 있는 기회를 간과하고 있습니다. 따라서, 사람을 위한 자동화 시리즈에서는 소프트웨어 개발 프로세스를 자동화 하는 방법을 연구하고, 자동화를 적용할 시기와 방법을 설명합니다.

소프트웨어를 개발할 때, 필자가 기본적으로 강조하는 부분은 결함이 코드 베이스에 들어가지 않도록 하는 것 또는 이것의 수명을 제한하는 것이다. 다시 말해서, 가능하면 빨리 결함을 찾으려고 노력한다. 더 나은 코드를 작성하는 방법을 배우고, 소프트웨어를 효과적으로 테스트 하는 방법을 배워갈수록, 결함을 더욱 잘 찾아내게 된다. 하지만, 중대한 결함을 찾을 수 있는 보안 망(safety net)도 갖고 싶기는 하다.

본 시리즈의 8월 기사에서, 감시 툴을 빌드 프로세스에 통합하면(Ant 또는 Maven을 사용함) 잠재적 결함들을 찾는데 효과적이라는 결론을 내렸다. 비록, 이러한 방식이 일관성을 유지하고 IDE를 능가하는 부분도 있지만, 약간 보수적(reactionary)이기도 하다. 여러분은 소프트웨어를 로컬에서 구현하거나, Continuous Integration 빌드가 실행되기를 기다려야 한다. 하지만, Eclipse 플러그인을 사용하면, Continuous Integration을 통해 빌드 또는 통합하기 전에 위반 사항들을 발견할 수 있다. 바로 이것을 진보적인 프로그래밍(progressive programming)이라고 할 수 있으며, 코딩 하면서 품질 체크도 실행할 수 있다.

이 글에서는 "5대" 코드 분석 영역에 대해 설명하겠다.

  • 코딩 표준
  • 코드 중복
  • 코드 커버리지
  • 의존성 분석
  • 복잡성 모니터링

이러한 분석 영역들은 다음과 같은 Eclipse 플러그인을 사용한다.

  • CheckStyle: 코딩 표준
  • PMD의 CPD: 코드 중복 발견
  • Coverlipse: 코드 커버리지 측정
  • JDepend: 의존성 분석 제공
  • Eclipse Metrics 플러그인: 복잡성 탐지

Eclipse는 빌드 시스템이 아닙니다.

Eclipse 플러그인을 사용한다고 해서 빌드 프로세스의 일부로 이러한 감시 툴을 사용하지 못하게 하는 것은 말도 안 된다. 사실, Eclipse 플러그인을 사용하는데 따르는 규칙들은 빌드 프로세스에도 똑같이 적용되는 규칙들이다.

Eclipse 플러그인 설치하기

Eclipse 플러그인 설치는 매우 간단하며, 단지 몇 단계만 거치면 된다. 시작하기 전에, 플러그인의 다운로드 사이트의 URL을 파악하는 것이 좋다. 표 1에서 필자가 이 글에서 사용하는 플러그인 리스트를 정리했다.


표 1. 코드 향상 플러그인과 설치 URL 리스트 
목적Eclipse 플러그인 URL
CheckStyle코딩 표준 분석http://eclipse-cs.sourceforge.net/update/
Coverlipse코드 커버리지 테스트http://coverlipse.sf.net/update
CPDCopy/Paste 탐지http://pmd.sourceforge.net/eclipse/
JDepend패키지 의존성 분석http://andrei.gmxhome.de/eclipse/
MetricsComplexity monitoringhttp://metrics.sourceforge.net/update

이제 여러분은 유용한 플러그인을 어디서 구하는지 알았으니, 설치는 간단하다. Eclipse를 시작하고 다음 단계들을 수행한다.

  1. Help | Software Updates | Find and Install을 선택한다. (그림 1)



    그림 1. Eclipse 플러그인 찾기 및 설치
    Eclipse 플러그인 찾기 및 설치 



  2. Search for new features to install 라디오 버튼을 선택하고 Next를 클릭한다. 

  3. New Remote Site를 클릭하고, 원하는 플러그인의 이름과 URL을 입력한다. (그림 2) OK를 클릭한 다음 Finish를 클릭하면 Eclipse Update Manager가 디스플레이 된다. 



    그림 2. 새로운 원격 사이트 구성하기
    새로운 원격 사이트 구성하기 



  4. Eclipse Update Manager에서, 플러그인의 다양한 측면을 볼 수 있는 옵션이 있다. 일반적으로 위에 있는 것을 선택한다. (그림 3) 선택을 하고 Finish를 클릭한다. Eclipse는 이때 플러그인을 설치한다. Eclipse 인스턴스를 재시작 해야 한다.



    그림 3. Eclipse 플러그인 설치하기 
    Eclipse 플러그인 설치하기 

이 단계를 수행하면 Eclipse 플러그인이 설치된다. 플러그인의 이름과 관련 다운로드 위치를 변경하라.

CheckStyle로 표준 수정하기

코드 베이스에 대한 관리능력은 소프트웨어의 총 비용에 직접적인 영향을 미친다. 더욱이, 관리능력은 개발자의 욕구 불만에도 기여한다. 코드 변경이 쉬울수록, 새로운 제품 기능을 추가하기도 쉽다. CheckStyle 같은 툴은 큰 클래스, 긴 메소드, 사용되지 않는 변수 등에 대한 관리능력에 영향을 미치는 코딩 표준의 위반 사항들을 찾는데 도움이 된다.

PMD에 대해서

PMD라고 하는 오픈 소스 툴은 CheckStyle과 비슷한 기능을 제공한다. 나는 CheckStyle을 선호하지만, PMD도 강력하고 전문적이기 때문에, 여러분도 한번 사용해 보길 권한다.

Eclipse용 CheckStyle 플러그인을 사용하면 코딩 하면서 소스 코드 내에서 다양한 위반 사항에 대해 알 수 있고, 개발자들이 체크인 전에 위반 사항을 고치게 된다. CheckStyle 플러그인을 지속적인 코드 리뷰에 사용하는 것으로 생각하면 된다.

CheckStyle 플러그인을 설치하고, 다음과 같이 구성한다. (그림 4)

  1. Eclipse 메뉴에서 Project를 선택한 다음 Properties 아이템을 선택한다.

  2. CheckStyle active for this project 체크 박스를 선택하고 OK를 클릭한다. 



    그림 4. Eclipse에서 CheckStyle 플러그인 구성하기
    Eclipse에서 CheckStyle 플러그인 구성하기 

Eclipse는 워크스페이스를 재구현 하고 Eclipse 콘솔 안에 코딩 위반 사항들을 발견해 낸다. (그림 5)


그림 5. Eclipse내에 나타난 CheckStyle 위반 사항 리스트 
Eclipse내에 나타난 CheckStyle 위반 사항 리스트  

CheckStyle 플러그인을 사용하여 Eclipse 내에 코딩 표준 검사를 포함시키면, 코딩 하는 동안 코드를 향상시킬 수 있고, 개발 사이클에서 조기에 소스 코드의 잠재적 결함을 발견할 수 있다. 여러분의 시간, 좌절감, 나아가서 프로젝트 비용까지 줄일 수 있다는 이점도 있다.

Coverlipse로 커버리지 확인하기

Coverlipse는 상응하는 테스트를 갖고 있는 소스 코드의 비율을 평가하는데 사용할 수 있는 Eclipse 플러그인이다. Coverlipse를 사용하여 코드를 작성하는 동안 코드 커버리지를 평가할 수 있다. 벌써 패턴을 인식하고 있나?

Coverlipse 플러그인을 설치하고 Run Eclipse 메뉴 아이템을 선택하여 JUnit과 연결시킨다. 이렇게 하면 JUnit, SWT 애플리케이션, 자바™ 애플리케이션 같은 실행 구성들이 나타난다. 오른쪽 클릭하여 JUnit w/Coverlipse 노드에서 New를 선택한다. 여기서부터, JUnit 테스트의 위치를 규명해야 한다. (그림 6)


그림 6. Coverlipse를 구성하여 코드 커버리지 확보하기 
Coverlipse를 구성하여 코드 커버리지 확보하기  

Run을 클릭하면, Eclipse는 Coverlipse를 실행하고 소스 코드에 마커를 삽입한다. (그림 7) 이것은 JUnit 테스트로 연결되었던 코드의 부분들을 나타낸다.


그림 7. Coverlipse에 의해서 생성된 리포트와 삽입된 클래스 마커
Coverlipse에 의해서 생성된 리포트와 삽입된 클래스 마커 

보다시피, Coverlipse Eclipse 플러그인을 사용하여 훨씬 더 빠르게 코드 커버리지를 결정할 수 있다. 이 기능은 코드를 CM 시스템에 체크인 하기 전에 테스팅 하는데 도움이 된다. 이 얼마나 진보적인 프로그래밍인가?

CPD로 코드 중복 발견하기

PMD 플러그인은 CPD(Copy Paste Detector)라고 하는 기능을 제공하는데, 이것은 중복된 코드를 찾아낸다. Eclipse에서 이 툴을 사용하려면, CPD 유틸리티가 포함된 PMD용 Eclipse 플러그인을 설치해야 한다.

중복 코드를 찾아내려면, Eclipse 프로젝트를 오른쪽 클릭하고, PMD | Find Suspect Cut and Paste를 선택한다. (그림 8)


그림 8. CPD 플러그인을 사용하여 Copy and Paste 체크 실행하기 
CPD 플러그인을 사용하여 Copy and Paste 체크 실행하기  

CPD를 실행했다면, report 폴더가 Eclipse 루트 디렉토리에 생성되고, 여기에는 cpd.txt라는 파일이 포함된다. 이곳에 모든 중복 코드들이 나열된다. cpd.txt 파일 예제는 그림 9를 참조하라.


그림 9. Eclipse 플러그인에서 생성된 CPD 텍스트 파일 
Eclipse 플러그인에서 생성된 CPD 텍스트 파일  

중복 코드를 직접 찾기란 어려운 일이지만, CPD 같은 툴을 사용하면 코딩 하는 동안 중복 코드를 빠르게 찾아낼 수 있다.

JDepend를 이용한 의존성 검사

JDepend는 무료로 사용할 수 있는 오픈 소스 툴로서, 패키지 의존성에 대한 객체 지향식의 측정법을 제공한다. 코드 베이스의 복원력에 대한 지표라고 할 수 있다. 다시 말해서, JDepend는 아키텍처의 정합성을 측정하는데 사용된다.

Eclipse 플러그인 외에도, JDepend는 Ant 태스크, Maven 플러그인, 자바 애플리케이션을 사용하여 측정 결과를 얻는다. 각각은 같은 정보를 다르게 전달한다. 하지만, Eclipse 플러그인이 가진 중요한 차이점 및 효과라고 한다면 정보를 (여러분이 코딩한 대로) 소스 코드에 매우 근접하게 제공한다는 점이다.

그림 10은 소스 폴더를 오른쪽 클릭하고, Run JDepend Analysis를 선택하여 JDepend용 Eclipse 플러그인을 사용하는 방법을 보여준다. 소스 코드를 갖고 있는 폴더를 선택하라. 그렇게 하지 않으면, 메뉴 옵션을 볼 수 없다.


그림 10. JDepend Analysis를 사용하여 코드 분석하기
JDepend Analysis를 사용하여 코드 분석하기 

JDepend 분석을 실행할 때 생성되는 리포트는 그림 11에 나와있다. 왼쪽 패인은 패키지를 나타내고, 오른쪽 패인은 각 패키지의 의존성을 나타낸다.


그림 11. Eclipse 내 프로젝트의 패키지 의존성 
Eclipse 내 프로젝트의 패키지 의존성  

JDepend 플러그인은 이 아키텍처가 시간이 흘러도 유지될 수 있는지의 여부를 볼 수 있는 많은 정보를 제공하고 있다. 가장 중요한 것은 코딩 하는 동안 데이터를 볼 수 있다는 점이다.

Metrics로 복잡성 평가하기

"5대" 코드 분석 영역의 마지막 영역은 복잡성이다. Eclipse는 Metrics라고 하는 플러그인을 제공한다. 이것은 복잡성을 포함하여 유용한 코드 메트릭스를 제공하는데, 이것은 메소드의 고유 경로의 수를 측정한 것이다.

Metrics 플러그인을 설치하고 Eclipse를 재시작 한다. 다음 단계들을 수행한다.

  1. 프로젝트를 오른쪽 클릭하고, Properties 메뉴를 선택한다. 결과 윈도우에서, Enable Metrics plugin 체크 박스를 선택하고OK를 클릭한다. (그림 12)



    그림 12. Metrics 구성하기 
    Metrics 구성하기  



  2. Eclipse에서 Window 메뉴를 선택하여 Metrics 뷰를 열고 Show View | Other...를 선택한다.

  3. Metrics | Metrics View를 선택하여 윈도우를 연다. (그림 13) 자바 퍼스펙티브를 사용하고 프로젝트를 재구현 하여 메트릭스를 디스플레이 한다.



    그림 13. Eclipse에서 Metrics View 열기 
    Eclipse에서 Metrics View 열기  



  4. OK를 클릭하면 그림 14에 나온 것 같은 윈도우가 디스플레이 된다. 

    이 경우, 나는 개별 메소드의 복잡성을 보고 있다. 정말로 좋은 점은 Metrics 리스트에서 메소드를 더블 클릭할 수 있고, 플러그인이 Eclipse 에디터에서 그 메소드용 소스 코드를 연다는 점이다. 정정하기가 아주 쉬워졌다.



    그림 14. 메소드용 Cyclomatic Complexity 보기
    메소드용 Cyclomatic Complexity 보기 

앞서 언급했지만, Eclipse Metrics는 소프트웨어를 개발하는 동안 코드를 향상시킬 수 있는 강력한 메트릭스를 제공한다.

직접 사용해 보기

이 글에서 언급한, 코딩 표준, 코드 중복, 코드 커버리지, 의존성 분석, 복잡성 모니터링 등 "5대" 코드 품질 평가를 하는 것이 중요하다고 생각한다. 개발 사이클에서 조기에 코드의 품질을 향상시킬 수 있는 PMD와 FindBugs 같은 기타 Eclipse 플러그인들도 많이 있다는 것도 알아두기 바란다. 원하는 툴이나 선호하는 평가 방식과 별도로, 코드를 적극적으로 향상시키려는 노력을 기울여야 하며, 수동의 코드 리뷰 프로세스도 더욱 효율성 있게 해야 한다. 이 툴을 사용해 보면, 그 동안 이 툴 없이 어떻게 살았는지에 대한 의문이 일 것이다.

기사의 원문보기


참고자료

교육

제품 및 기술 얻기

토론

필자소개

Paul Duvall

Paul Duvall은 Stelligent Incorporated의 CTO이다.UML™ 2 Toolkit Toolkit을 공동 집필했으며 곧 출간될 Addison-Wesley Signature Series, Continuous Integration: Improving Software Quality and Reducing Risk의 공동 저자이다.

Posted by 1010
반응형
JAVA는 컴파일된 클래스들을 JAR로 묶어서 배포할 수 있게 하고 있다. cmd에서 java 명령어를 통해서도 JAR를 만들 수 있지만 이클립스에서도 JAR를 만들 수 있다.



프로젝트를 JAR로 export하는 방법

  1. File -> Export 에서 JAVA -> JAR file을 선택

  2. 왼쪽 창에서 JAR로 만들 프로젝트를 선택

  3. 중간의 JAR file: 에서 JAR 의 이름과 위치를 선택

  4. next, next 후 아래의 Main class:에서 JAR를 실행시 호출할 메인 클래스를 지정한다.

  5. finish를 누르면 앞에서 지정한 위치에 JAR 파일이 생성된다.



배포하는 쪽의 라이브러리 환경과 실행할 쪽의 라이브러리 환경이 같은 경우만 위 방법을 사용할 수 있다.
만약 외부 라이브러리 JAR파일등을 eclipse에서 추가해서 프로그램을 작성하고 위 방법으로 JAR를 만들면 외부 라이브러리는 새로 만든 JAR 파일에 포함되지 않는다.

따라서 배포를 한 후, 실행하는 환경에서 해당 외부라이브러리가 설치되지 않았다면 실행할 수 없다.
이 경우 내가 사용한 라이브러리들을 JAR에 포함시켜야 한다.

eclipse에서 외부 라이브러리를 포함한 JAR파일 생성은 아래를 참고.
외부 라이브러리를 포함한 JAR파일 만들기



JAR를 실행하는 방법은 아래를 참고.

JAR 실행방법

[펌]http://veenvalu.tistory.com/1


Posted by 1010
56. Eclipse Etc.../Eclipse2011. 11. 14. 16:16
반응형

java.lang.OutOfMemoryError: Java heap space발생시 tomcat memory option

이클립스에서 여러개의 프로젝트를 동시에 올리고, 개발을 해야 할일이 꽤 많다.

여러개의 서비스를 띄우다가 보면, 다음과 같이 메모리 에러가 종종 발생을 한다.

메모리를 많이 사용하는 프로젝트는 서비스 하나만 띄우도 발생을 한다.

2008-04-08 08:45:19 [ERROR](StandardWrapperValve.java:253) Servlet.service() for servlet action threw exception
java.lang.OutOfMemoryError: Java heap space



servers tab에서 해당 server를 더블클릭을 한다.
User inserted image


다음과 같은 화면이 나온다.
User inserted image

open launch configuration을 클릭을 하고, argument tab에서 다음과 같은 옵션을 추가해야 한다.

MaxPermSize는 spring이나 여러가지 framework에서 내부적으로 reflection을 많이 사용하기때문에 반드시 메모리를 늘려줘야 한다.

tomcat memory option
-XX:MaxPermSize=128m -Xms128m -Xmx512m


User inserted image



출처 : http://www.ologist.co.kr/866
Posted by 1010
56. Eclipse Etc.../Eclipse2011. 8. 25. 09:41
반응형

-startup
plugins/org.eclipse.equinox.launcher_1.0.201.R35x_v20090715.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.0.200.v20090519
-product
org.eclipse.epp.package.java.product
--launcher.XXMaxPermSize
256M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
-vm C:\Program Files (x86)\Java\jdk1.6.0_16\bin\javaw.exe
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms512m
-Xmx1024m
Posted by 1010
56. Eclipse Etc.../Eclipse2011. 8. 25. 08:59
반응형
이클립스 종료후

eclipse.ini 파일 열어서 맨 마지막줄에

-Dfile.encoding=UTF-8

추가
Posted by 1010
반응형


=== 이클립스 JVM 메모리 늘리기 ===

이클립스 실행파일 바로가기를 만들고 속성에

실행 파일 뒤에  -clean -vmargs -Xms32m -Xmx512m 을 붙인다.

ex)J:\eclipse\eclipse.exe -clean -vmargs -Xms32m -Xmx512m

-Xms32m = 최소 메모리 32(중요하지 않음.)

-Xmx512m = 최대 메모리


블로그에서 퍼온글...


==== Eclipse실행시 주의사항 ====

    [4-1] Eclipse는 java로 구동되기 때문에 java process가 생성된다.

    [4-2] GUI로 만들어져 있기 때문에 상당한 메모리를 차지한다.

    [4-3] 메모리를 효율적으로 관리하기 위해서 아래와 같이 작업을 수행한다.

       [4-3-1] Eclipse.exe 아이콘의 오른쪽 버튼을 누른 후

                  [보내기]-[바탕화면에 바로가기 만들기]누른후 바탕화면으로 이동해서

                  바탕화면의 Eclipse바로가기 아이콘에서 오른쪽 마우스를 누른 후

                  [등록정보]를 클릭한후 “대상” 항목에 “설치디렉토리\eclipse.exe”라고
                  되어 있다. 이 내용을 아래와 같이 변경한다.

                  설치디렉토리\eclipse.exe -vmargs -Xms256m -Xmx512m

                  -Xms : Start memory를 설정

                  -Xmx : Extends memory를 설정




이클립스가 쓰는 메모리 늘리기

1G로 늘립니다.
javaw.exe는 JDK안의 JRE에 들어있는 겁니다.



이클립스실행파일을 바로가기로 하나 만든다음
바로가기에서 오른쪽 속성에 들어가면 대상에 입력할수 있게 나온다
거기에 실행파일경로 .exe 뒤에  -vmargs -Xms256m -Xmx1024m 를 추가해준다
-Xms256m  은 최소메모리가 256이라는 거다(다른 수치로 수정가능)
-Xmx1 024m 은 최대메모리로 다른 수치로 지정 가능한데 컴퓨터 사양에 따라
약간씩 다르지만 1024m(=1G)정도가 이클립스가 가장 부드럽게 움직이는데
도움이 된다고 한다








이클립스 는 뛰어난 코드어시스트 및 구조화에 대한 연계성을 제공하지만,
Java 태생적으로 속도적 한계로 인하여 메모리에 대한 부담이 많이 되는것이 사실이다.

이클립스 에 대한 메모리 관리는 eclipse.ini의 설정값을 통해서 배분 할 수 있지만,
이클립스 의 현재 상태의 메모리뷰 및 메모리 가비지 콜렉션 등은 이클립스 실행 중에도
제어가 가능하다.

Windows->Preferences->General->Show heap Status 체크
image

Posted by 1010
반응형

만들어 놓은 포멧 형식....

 



같은 팀에서 일하는 동료가 소개해준 이클립스 플러그인인데 요즘 이넘 때문에 일할맛 납니다~
철아 ~ 고맙따~ :)

Sourceforge에 등록된 프로젝트입니다.
http://sourceforge.net/projects/flexformatter



이클립스 플로그인으로 설치를 하면 다음과 같이 이클립스 환경설정에 flex_formatting이라는 항목이 생깁니다.



이 환경설정에서 액션스크립트나 MXML 포맷을 설정하고 그림처럼 설정하면 끝납니다.


자 이제 소스에 적용해 볼까요?

이렇게 짰던 코드가~




이렇게 변했습니다~



차이점을 찾아 보세요~.. 연산자나 메소드 인자 값들이 변했죠? 이 외에도 몇가지 설정을 했습니다..
MXML에도 적용을 해보고 ...

근데 괜찮죠?~ ㅋㅋ
소스 개판으로 짜도 이넘 때문에 걱정없네요..
이제 거의 flashdevelop은 쓰지 않는 지경이 되어 가고 있다는...
다음번엔 flashdevelop의 alt+shift+1 이 단축키를 능가하는 이클립스를 보여드리도록 하졍~

좋은 하루 되세요



출처 : http://lovedev.tistory.com/432
Posted by 1010
56. Eclipse Etc.../Eclipse2010. 11. 29. 10:36
반응형

필수 플러그인

설치하면 좋은 플러그인


cn출처 : http://benelog.springnote.com/pages/4214931


Posted by 1010
56. Eclipse Etc.../Eclipse2010. 10. 29. 11:38
반응형

자바프로그램에서 propeties 라는 파일이 있습니다. classpath에 위치하면서 설정이나 다국어 처리를 위한 파일로 많이 씁니다.

주의할 점은 한글을 써 놓으면 그대로 쓰지 못합니다. 유니코드로 바꿔줘야하는데, %JAVA_HOME%\bin\native2ascii.exe 프로그램을 쓰고는 합니다.



이렇게 파일의 한글을 알아볼 수 없게 되어버립니다. 이쯤되면 한 마디 나오죠. "어쩌라고"

이클립스에서 프로퍼티 편집을 쉽게 하도록 플러그인이 일본에서 만들어졌습니다.
구글에서 propedit 하면 처음에 나오는 사이트입니다.
http://propedit.sourceforge.jp/index_en.html
이클립스에서 바로 플러그인을 설치할 수 있습니다. 업데이트 주소가 필요한데, 사이트에서 다음과 같은 주소를 찾을 수 있습니다.
http://propedit.sourceforge.jp/eclipse/updates/

이 주소를 복사하고 다음과 같이 이클립스 메뉴에서 Help > Software Updates > Find and Install... 을 선택합니다.


두 번째 메뉴을 선택합니다. Search for new features to install


참고로 첫 번째 메뉴 Search for updates of the currently installed features 는 현재 이클립스에 있는 컴포넌트들의 업데이트들을 찾아서 설치하는 메뉴입니다.

우측의 New Remote Site... 버튼을 클릭하고 Name에는 propedit , 아래 URL에는 아까 복사한 업데이트 URL을 붙여넣기 합니다. 그리고 아래쪽의 Finish 버튼을 누릅니다.

이후 Updaes 타이틀이 붙어있는 창이 뜨고 Search Results가 나옵니다. propedit 를 펼쳐보면 항목이 3개 있는데, 가운데 플러그인은 3.3에서는 동작하지 않아서 체크하지 않았습니다. 세 번째 플러그인은 vi 키보드 편집처럼 에디터를 쓸 수 있도록 해주는 것입니다. 같이 설치하도록 하겠습니다. 잘도 만드네요.

설치를 마치면 이클립스를 재시작합니다.

프로퍼티 파일의 아이콘이 바뀝니다. 오른 버튼으로 Open With라는 메뉴를 보면 가능한 편집기 리스트가 나옵니다. 첫 번째 Properties File Editor는 이클립스 내장 에디터입니다. 맨 처음 보았던 것이죠. 두 번째 있는 PropertiesEditor가 새로 설치한 플러그인에서 지원하는 에디터입니다. 아이콘이 다름을 알 수 있습니다. 이것으로 열어보겠습니다.

에디터 탭을 옮겨서 두 에디터를 비교하면 다음과 같습니다. 에디터 탭의 아이콘으로 구분이 가능합니다.


같은 파일이 편집기에 따라서 다르게 보임을 알 수 있습니다. 편집은 가독성있는 문자코드로 하고 저장만 유니코드로 자동변환되어 저장됩니다.

잘 쓰시기 바랍니다.
오늘은 요기까지입니다.



출처 : http://www.okjsp.pe.kr/seq/104351

Posted by 1010
56. Eclipse Etc.../Eclipse2010. 10. 19. 16:23
반응형
지난 6월 23일에 발표된 Eclipse 3.6 Helios 를 슬슬 사용해 보려고 새로운 마음으로 JDK도 JDK 6 Update 21 을 다운받아서 설치하고 기존에 사용하던 프로젝트를 저장소에서 Checkout받자 프로젝트를 생성하던 도중 이클립스가 죽어버리는 현상이 발생했습니다. (Subclipse, m2eclipse 사용중)

기존에도 종종 이클립스는 메모리오류가 발생하였기 때문에 아무생각없이 eclipse.ini파일을 수정하여 주었지만 좀처럼 해결되지 않고 계속 프로젝트를 받아오다가 번번히 죽어버렸습니다. 로그파일을 확인하니(.log파일은 workplace안에 .metadata폴더 안에 있습니다.) 아래와 같은 오류가 발생하였습니다.

java.lang.OutOfMemoryError: PermGen space


기존의 eclipse.ini파일의 수정으로는 도저히 해결이 되지 않아서 Helios가 안정적이지 않은 것으로 막연히 생각하고 있었는데 트위터를 통해서 해당 문제에 대한 해결책 을 얻을 수 있었습니다.

이 문제는 JDK 6u21에서 발생하는 문제인데 6u21에서 vendor명이 기존의 Sun에서 Oracle로 변경이 되었습니다. Eclipse 런처가 JVM의 벤더를 읽어서 Sun JVM일 경우에는 추가적으로 이클립스의 동작을 위해 필요한 XX:MaxPermSize 설정을 추가하는데 6u21에서는 Sun이 아닌 Oracle로 변경이 되어 이 설정이 먹히지 않는 것입니다. 이 내용은 이클립스의 버그로 등록은 되었지만 9월에 예정된 Helios SR1에서 수정될 예정은 없어보인다고 합니다.

이클립스의 폴더안에 있는 eclipse.ini파일을 열어서 아래의 부분을 삭제합니다.

--launcher.XXMaxPermSize
256m

그 다음에 -Xmx설정뒤에 -XX:MaxPermSize=512m 를 추가하면 위의 OutOfMemoryError를 피할 수 있습니다.

아래 내용은 참고용으로 올리는 저의 eclipse.ini파일입니다.
  1. -startup  
  2. plugins/org.eclipse.equinox.launcher_1.1.0.v20100507.jar  
  3. --launcher.library  
  4. plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.0.v20100503  
  5. -product  
  6. org.eclipse.epp.package.jee.product  
  7. --launcher.defaultAction  
  8. openFile  
  9. --launcher.XXMaxPermSize  
  10. 128M  
  11. -showsplash  
  12. org.eclipse.platform  
  13. -vm  
  14. C:\Program Files\Java\jdk1.6.0_21\bin\  
  15. --launcher.defaultAction  
  16. openFile  
  17. -vmargs  
  18. -Dosgi.requiredJavaVersion=1.5  
  19. -Xms40m  
  20. -Xmx512m  
  21. -XX:MaxPermSize=256m  

이 문제는 Windows플랫폼에서만 발생한다고 합니다.



추가로 봄싹 의 김성호님이 공유해 주신 이클립스 위키에 위 문제의 해결법 에 대해서 잘 나와있습니다.

  1. 6u20으로 다운그래이드
  2. eclipse.ini에  -XX:MaxPermSize=256m 추가
  3. 수정된된 이클립스용 dll을 다운받아 사용
이렇게 3가지 방법숭 하나를 사용하라고 권하고 있습니다.


출처 : http://blog.outsider.ne.kr/497?category=34
Posted by 1010