manywaypark's Blog
개발, 검색, 함수

그냥 링크만...

ref:

http://www.mkyong.com/java/how-to-convert-java-project-to-web-project-in-eclipse/


happy hackin'

Tycho?

java/eclipse 2013. 5. 19. 16:33 by manywaypark

eclipse 또는 OSGi 프로젝트를 그냥 명령행에서 maven을 이용해서 빌드할 수 있게 해준다.

production level의 build 및 CI 환경에서는 반드시 사용해야만 할듯...


https://support.sonatype.com/entries/20910552.html

http://wiki.eclipse.org/Tycho/Reference_Card


happy hackin'

문제:

eclipse에서 m2eclipse를 쓸때,

project를 import(일반적으로 쓰는 Import > General > Existing Projects into Workspace)한 후에 right click project > Configure > Convert to Maven Project를 선택하면 다음과 같은 오류가 나면서 제대로 동작하지 않는 경우가 있다.

An internal error occurred during: "Enabling Maven Dependency Management".

Unsupported IClasspathEntry kind=4

해결:

  1. rightclick project, remove maven nature
  2. mvn eclipse:clean (with project open in eclipse/STS)
  3. delete the project in eclipse (but do not delete the sources)
  4. Import existing Maven project

ref: http://stackoverflow.com/questions/15065093/an-internal-error-occurred-during-updating-maven-project-unsupported-iclassp


happy hackin'

eclipse의 maven plugin인 m2eclipse를 이용해서 빌드를 할때 다음과 같은 메시지가 나오면서 빌드가 멈출 때가 있다.
Detected JDK Version: 1.5.0-16 is not in the allowed range [1.6.0,].
기본적으로 컴파일에 필요한 자바 버전이 안맞아서 나오는 메시지인데, 실제로 명령행에서 빌드할 때는 JAVA_HOME이 정확한 버전(이 경우 1.6이상 버전의 JDK)을 가리키고 있다면 mvn으로 잘 빌드되는 환경에서도 eclipse 내에서 m2eclipse를 사용하면 이 에러가 나는 좀 복잡한 상황이다.
일단 pom.xml에서 오른쪽 클릭으로 문맥 메뉴 선택후 "Run As > Maven Build..."를 해서 빌드를 하면 된다는 workaround는 찾았는데 조금 찜찜하다.

참고:

참고2:
eclipse는 JAVA_HOME 환경변수와는 무관하게 독자노선(?)을 걷는다. eclipse.ini에서 설정가능하다. README 참조.
또한 eclipse를 실행시키는 java(eclipse.ini에서 설정)와 eclipse가 build에 쓰는 java(Preferences에서 설정)는 다를 수 있다.

happy hackin'

Project Properties -> Project Facets panel에서 설정


happy hackin'
현재(2009-04-23) eclipse maven plugin을 update site에서 설치하려고 하면 다음과 같은 에러가 나면서 설치가 안된다.
ERROR Message:
Cannot find a solution satisfying the following requirements org.eclipse.swt [3.4.1.v3449c].

해결:
Install Package 리스트에서 AJDT를 빼고하면 해결된다.
(이건 머하는 놈일까? 요즘 eclipse가 많이 복잡해진듯하다.)

happy hackin'
플러그인 설치가 꼬여서 eclipse를 지웠다가 재설치를 했는데,
다음과 같은 에러 로그를 뿌리면서 Ubuntu box에서 eclipse가 실행되지 않았다.

로그 처음 부분:
!SESSION 2008-06-11 19:16:32.612 -----------------------------------------------
eclipse.buildId=M20070212-1330
java.version=1.6.0_03
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=en_US
Command-line arguments:  -os linux -ws gtk -arch x86_64 -debug -consoleLog

!ENTRY org.eclipse.osgi 2 1 2008-06-11 19:16:35.246
!MESSAGE NLS missing message: initializer_error in: org.eclipse.core.internal.runtime.messages

!ENTRY org.eclipse.osgi 2 1 2008-06-11 19:16:35.247
!MESSAGE NLS missing message: fileInitializer_fileNotFound in: org.eclipse.core.internal.runtime.messages

!ENTRY org.eclipse.osgi 2 1 2008-06-11 19:16:35.248
!MESSAGE NLS missing message: fileInitializer_IOError in: org.eclipse.core.internal.runtime.messages

!ENTRY org.eclipse.osgi 2 1 2008-06-11 19:16:35.248
!MESSAGE NLS missing message: fileInitializer_missingFileName in: org.eclipse.core.internal.runtime.messages

!ENTRY org.eclipse.osgi 4 0 2008-06-11 19:16:35.270
!MESSAGE An error occurred while automatically activating bundle org.eclipse.ui.workbench (8).
!STACK 0
org.osgi.framework.BundleException: The activator org.eclipse.ui.internal.WorkbenchPlugin for bundle org.eclipse.ui.workbench is invalid
    at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadBundleActivator(AbstractBundle.java:141)


해결법은 간단히 다음 명령어 입력:
$sudo apt-get --purge remove libswt3.2-gtk-*
#lets him remove all eclipse pakages and reinstall eclipse
$sudo apt-get install eclipse
libswt와 모종의 충돌(?)이 있는 듯하다.

참고:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=446299#120
https://bugs.launchpad.net/ubuntu/+source/eclipse/+bug/109583

happy hackin'
Window > Preferences... 의 왼쪽 패널에서 Java > Editor > Templates를 선택하면 다양한 template을 자바 에디터에서 사용할 수 있다.
예를 들어 내가 자주 사용하는 logger 관련 선언 자동 삽입은 다음 순서로 하면 쓸 수 있다.
  1. "New..."를 선택한다.
  2. Name에 "_l"을, Description에 "insert logger", Pattern에 "protected final static Log log = LogFactory.getLog(${enclosing_type}.class);"을 넣고 "OK"를 누른다.
    사용자 삽입 이미지
  3. java 편집기에서 _l을 타이핑한 후에 Content Assist 명령을 입력하면, 현재 클래스의 logger를 자동으로 삽입할 수 있다.
    Content Assist 명령은 emacs 모드의 경우 Alt + /이고 default 모드의 경우 Ctrl + Space이다.
참고: "Insert Variable..." 버튼을 눌러보면 다양한 context 관련 변수(현재 클래스명 및 메서드 관련 등) 및 유용한 변수들(날짜, 시간관련 등)을 Pattern에 넣을 수 있다.

happy hackin' with DRY
1 
분류 전체보기 (306)
잡담 (20)
함수형 언어 (65)
emacs (16)
java (18)
eclipse (8)
tips & tricks (154)
사랑 (1)
가사 (0)
독서 (4)
mobile (6)
비함수형 언어 (2)

공지사항

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

03-29 09:57