* GitLens: 해당 라인 커밋한 시점 등의 정보를 보여 줍니다. 

 

GitLens — Git supercharged - Visual Studio Marketplace

Extension for Visual Studio Code - Supercharge Git within VS Code — Visualize code authorship at a glance via Git blame annotations and CodeLens, seamlessly navigate and explore Git repositories, gain valuable insights via rich visualizations and powerfu

marketplace.visualstudio.com

* Git Graph: 소스트리 대체할 만 합니다.

 

Git Graph - Visual Studio Marketplace

Extension for Visual Studio Code - View a Git Graph of your repository, and perform Git actions from the graph.

marketplace.visualstudio.com

* GitHub Copilot: 인공지능과 짝프로그래밍 하면 시간을 많이 줄일 수 있습니다. 경쟁자 tabnine

 

GitHub Copilot · Your AI pair programmer

GitHub Copilot works alongside you directly in your editor, suggesting whole lines or entire functions for you.

copilot.github.com

* Thunder Client: Postman보다 가볍고, 호환도 대부분 다 됩니다.

 

Thunder Client - Rest API Client Extension for VS Code

Thunder Client is a hand-crafted lightweight Rest API Client extension for Visual Studio Code

www.thunderclient.com

* Prettier: 코드 가독성은 중요합니다.

 

Prettier · Opinionated Code Formatter

Opinionated Code Formatter

prettier.io

 

추가로 하나 더, 새로 시작한 플러그인입니다.

* SonarLint: SonarQube 서버 없이도, 코드 정적분석이 코딩할 때 가능합니다. 팀 개발한다면 룰셋을 SonarQube 서버를 통해서 가능합니다.

 

SonarLint | Free and Open Source Code Quality & Security IDE Extension

Find and fix Code Quality and Security issues as you code, directly in your IDE of choice, including JetBrains, Eclipse, Visual Studio and VS Code.

www.sonarlint.org

 

정확히 얘기하면 JSDT jQuery 플러그인입니다. 마켓에서 jquery로 검색하면 됩니다.


JSDT jQuery가 보입니다. 아래쪽에 nodeclipse도 보이는군요.


플러그인을 설치하고 난 뒤 이클립스를 다시 실행합니다. 프로젝트의 JavaScript Resources 항목을 선택하고 Properties 메뉴를 클릭합니다.



Include Path의 Libraries탭에서 Add JavaScript Library... 버튼을 클릭합니다.


jQuery Library 항목을 선택해서 추가합니다. (JDK 1.5 이하로 이클립스를 실행하면 나타나지 않습니다.)



jQuery의 버전을 지정할 수 있습니다.



추가된 jQuery라이브러리가 보입니다.



이제 자바스크립트 편집시에 Content Assist(Ctrl+space) 기능을 통해서 jQuery 함수가 나타나는 것을 볼 수 있습니다. $.ajax는 안 나타나는 단점도 보입니다만, 그래도 jQuery 개발이 많다면 유용할 것으로 보입니다.


IntelliJ에서는 이런 작업이 필요없고 jQuery 자동완성 기능이 기본적으로 된다고 합니다. 역시 유료


related:

http://stackoverflow.com/questions/11731884/jquery-autocompletion-with-eclipse-juno-java-ee




[INFO] [war:war {execution: default-war}]
[INFO] Packaging webapp
[HUDSON] Archiving C:\eGovFrameSvr\hudson\jobs\ok.egov\workspace\pom.xml to C:\eGovFrameSvr\hudson\jobs\ok.egov\modules\ok$egov\builds\2013-07-02_07-12-51\archive\ok\egov\1.0.0\pom.xml
[INFO] ------------------------------------------------------------------------
[ERROR] FATAL ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Cannot construct org.apache.maven.plugin.war.util.WebappStructure as it does not have a no-args constructor
---- Debugging information ----
message             : Cannot construct org.apache.maven.plugin.war.util.WebappStructure as it does not have a no-args constructor
cause-exception     : com.thoughtworks.xstream.converters.reflection.ObjectAccessException
cause-message       : Cannot construct org.apache.maven.plugin.war.util.WebappStructure as it does not have a no-args constructor
class               : org.apache.maven.plugin.war.util.WebappStructure
required-type       : org.apache.maven.plugin.war.util.WebappStructure
path                : /webapp-structure
line number         : 1
-------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] Trace
com.thoughtworks.xstream.converters.ConversionException: Cannot construct org.apache.maven.plugin.war.util.WebappStructure as it does not have a no-args constructor
---- Debugging information ----
message             : Cannot construct org.apache.maven.plugin.war.util.WebappStructure as it does not have a no-args constructor
cause-exception     : com.thoughtworks.xstream.converters.reflection.ObjectAccessException
cause-message       : Cannot construct org.apache.maven.plugin.war.util.WebappStructure as it does not have a no-args constructor
class               : org.apache.maven.plugin.war.util.WebappStructure
required-type       : org.apache.maven.plugin.war.util.WebappStructure
path                : /webapp-structure
line number         : 1
-------------------------------
	at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:63)
	at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:45)
	at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:46)
	at com.thoughtworks.xstream.core.TreeUnmarshaller.start(TreeUnmarshaller.java:117)
	...
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
	at java.lang.Thread.run(Thread.java:722)
Caused by: com.thoughtworks.xstream.converters.reflection.ObjectAccessException: Cannot construct org.apache.maven.plugin.war.util.WebappStructure as it does not have a no-args constructor
	at com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider.newInstance(PureJavaReflectionProvider.java:59)
	at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.instantiateNewInstance(AbstractReflectionConverter.java:257)
	at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:124)
	at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:56)
	... 43 more
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4 seconds
[INFO] Finished at: Tue Jul 02 07:12:57 KST 2013
[INFO] Final Memory: 20M/49M
[INFO] ------------------------------------------------------------------------
channel stopped
Finished: FAILURE


이 에러 메시지는 maven war plugin 이 Java7을 지원하지 못하기 때문이라고 합니다. jdk1.6으로 내리거나 아래 플러그인을 pom.xml에 추가해야 합니다.

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.1.1</version>
</plugin>

from: http://stackoverflow.com/questions/7539970/cannot-construct-org-apache-maven-plugin-war-util-webappstructure-as-it-does-not




이클립스 3.6의 메뉴 중에서 Help > Eclipse Marketplace... 항목이 새로 추가되었습니다. 
propedit 라는 키워드로 검색하면 일본에서 만든 Unicode 프로퍼티 에디터 플러그인을 설치할 수 있는 Site URL  나옵니다. 
마켓에서 바로 설치는 되지 않고, 검색만 되는 듯 합니다.

Help > Eclipse Marketplace



안드로이드 2.2 Froyo가 출시되었습니다.
만약 이클립스에 이전 버전이 설치되어 있다면 디벨로퍼 사이트에 접속하지 않고도 편하게 2.2 SDK와 플러그인을 업데이트할 수 있습니다.

이클립스 메뉴의 Help > Check for updates 메뉴를 선택합니다.

이클립스 ADT 플러그인이 0.9.6에서 0.9.7로 업그레이드가 되었군요. 아울러 Subversive 플러그인이 설치되어 있다면 함께 업그레이드해도 좋을 것입니다.

업그레이드를 마치면 툴바에 있는 안드로이드 다운로드 아이콘을 클릭해서 Android SDK and AVD Manager를 엽니다. 
아래 그림과 같이 Android SDK Tools, revision 6 와 API8 관련된 4개의 체크박스를 선택합니다. Install 하시면 다운로드와 설치가 자동으로 이뤄집니다.

설치가 완료되면 좌측 Virtual Devices 메뉴에서 Target을 API8로 해서 2.2 에뮬레이터를 구동할 수 있게 됩니다.


6개의 활용팁을 보여주는군요. 조금씩 나아지고 있습니다. ^^


2000년 이클립스가 공개된 이후 자바 개발자들에게는 신세계가 열렸습니다. 하지만 이클립스의 꿈은 자바 그 이상입니다. 이클립스는 모든 개발도구의 플랫폼이 되는 것입니다. 그래서 php, C/C++, Ruby, python, COBOL 등의 언어를 이클립스에서 지원합니다. 이에 대한 환경설정이 시간이 쪼까 걸리는 데 이것을 정리해 놓은 사이트가 있어서 소개합니다.


이 분은 용자입니다. ^^b

생각만하고 있었는데, 역시 부지런한 분들이 만들어 놓았군요. WoC 프로젝트에서 사용해봐야겠습니다.


이클립스 Mylyn 요즘 Trac과 붙여놓고 신나게 쓰고 있는데, 공개된 이슈트래커와 붙이면 공개 프로젝트 재밌게 진행할 수 있겠죠.
Hudson 메인 페이지의 Manage Hudson 메뉴로 이동하면 신규 버전 알림이 노란 줄로 뜹니다. download 링크를 클릭하면 바로 다운 받을 수 있죠. 그리고 플러그인의 업데이트는 Manage Plugins 설명에 (updates available) 이라고 빨간 글씨로 보입니다.


Manage Plugins로 가면 Updates 탭에 해당 플러그인이 보입니다. 체크하고 우측 하단의 Install 버튼을 클릭하면 업데이트가 진행됩니다. 

대체로 설치 후에 hudson을 재시작해줘야 됩니다.



그리고 다른 얘기인데, findbugs 플러그인에서 보여주듯이 okjsp사이트의 버그는 다 잡았습니다. 냐호~



hudson의 최상위 페이지의 메뉴 "Manage Hudson(Hudson의 관리)" 메뉴로 갑니다.

Manage Plugins 를 선택하고, Available탭에서 findbugs 플러그인을 설치합니다.

hudson을 콘솔에서 재시작하고, 프로젝트의 configure 메뉴에 가면 findbugs 활성화 체크박스가 하단에 보입니다. 체크하면 hudson에서 findbugs 플러그인이 활성화됩니다.

Build 섹션에서 Add Build Step버튼을 클릭해서 findbugs 빌드를 추가합니다. 빌드서버에 설치된 findbugs 경로를 findbugs.home 에 지정합니다. 환경변수에 $FINDBUGS_HOME으로 지정되면 이 과정이 필요없습니다.

build.xml 의 findbugs 타겟 소스는 참고로 다음과 같습니다.
    <taskdef name="findbugs" classname="edu.umd.cs.findbugs.anttask.FindBugsTask"/>
   <target name="findbugs">
      <findbugs home="${findbugs.home}"
                output="xml:withMessages"
                outputFile="findbugs.xml" >
        <sourcePath path="${basedir}/src" />
        <class location="${publish.home}/WEB-INF/classes" />
      </findbugs>
    </target>

콘솔에 다음과 같은 메시지가 찍히면서 findbugs에 대한 보고서를 확인할 수 있습니다.

참조하는 jar파일의 경로가 지정되지 않으면 이런 메시지가 나타납니다.

 [findbugs] The following classes needed for analysis were missing:
[findbugs]   javax.servlet.http.HttpServlet
[findbugs]   javax.servlet.Servlet

findbugs 태스크에 다음과 같은 jar경로가 있는 줄을 추가하면 위 경고가 해결됩니다.
      <findbugs home="${findbugs.home}"
                output="xml:withMessages"
                outputFile="findbugs.xml" >
       <auxClasspath path="${catalina.home}/common/lib/servlet-api.jar" />
        <sourcePath path="${basedir}/src" />
        <class location="${publish.home}/WEB-INF/classes" />
      </findbugs>


버그의 추이가 그래프로 나타납니다.

버그의 자세한 리포트는 프로젝트 왼쪽 메뉴의 FindBugs Warnings 를 통해서 확인가능합니다.

이제 남은 일은 버그의 수를 줄이는 것이겠죠.


update site url 입니다. http://findbugs.cs.umd.edu/eclipse/
설치가 완료되면 다음과 같은 메뉴가 보입니다.

테스트용으로 에러를 발생시키는 소스를 만들어서 테스트 해봅니다.

package net.okjsp;

public class HelloWorld {

 /**
  * @param args
  */
 public static void main(String[] args) {
  String arg = null;
  System.out.println("Hello World! "+arg.equals("0"));

 }

}


문제가 되는 라인 앞에 버그가 표시됩니다. 더블클릭하면 하단에 findbugs 뷰가 생깁니다.


해당 버그의 내용과 수정 방법에 대해서 표시됩니다.

뷰 메뉴 중 findbugs 퍼스펙티브로 전환하는 아이콘도 있습니다.

클릭하면 다음과 같은 정보를 확인할 수 있습니다.

이제 쎄스코를 부르지 않아도 될 것 같습니다.

 

+ Recent posts