Intellij IDEA 플러그 인 개발 입문 상세 설명

현재 의 IDE 는'홍수 와 맹수'처럼 강하 지만 아무리 강 한 IDE 라 도 사용자 가 원 하 는 모든 기능 을 제공 할 수 없다 는 것 을 알 아야 하기 때문에 IDE 는 일반적으로 API 인 터 페 이 스 를 제공 하여 개발 자가 스스로 확장 할 수 있다.다음은 Intellij IDEA 12 의 플러그 인 개발 을 예 로 들 어 개발 자의 수요 에 적응 하기 위해 IDE 를 어떻게 강화 하 는 지 살 펴 보 겠 습 니 다.
1.플러그 인 프로젝트 만 들 기
모듈 SDK 에 선택 할 SDK 가 없 으 면 뉴 를 누 르 고 SDK 를 새로 추가 하면 디 렉 터 리 는 인텔리 전 스 의 설치 위 치 를 선택 하면 된다.

만 든 Plugin 프로젝트 의 구 조 는 매우 간단 합 니 다.다만 META-INF 에 plugin.xml 프로필 이 하나 더 생 겼 을 뿐,나중에 그 용도 에 대해 소개 할 것 입 니 다.

2.플러그 인 에 게 말 하 라 고 하 세 요
2.1 Component 추가
src 디 렉 터 리 에 Alt+Insert 를 사용 하면 New 대화 상자 에 세 가지 구성 요소 가 있 는 것 을 볼 수 있 습 니 다.각각 세 가지 단계:Application,Project,Module Component.여기 서 애플 리 케 이 션 Component 를 인 스 턴 스 로 선택 하고 팝 업 상자 에 MyComponent 와 같은 이름 을 입력 하면 구성 요소 가 생 성 됩 니 다.

그리고 MyComponent 에 SayHello 방법 을 추가 합 니 다.다른 방법 은 잠시 실현 되 지 않 습 니 다.소스 코드 는 다음 과 같 습 니 다.

package com.cdai.plugin.rapidg;
import com.intellij.openapi.components.ApplicationComponent;
import com.intellij.openapi.ui.Messages;
import org.jetbrains.annotations.NotNull;
/**
 * My Component
 * User: cdai
 * Date: 13-11-4
 * Time:   10:08
 */
public class MyComponent implements ApplicationComponent {
  public MyComponent() {
  }

  public void initComponent() {
    // TODO: insert component initialization logic here
  }

  public void disposeComponent() {
    // TODO: insert component disposal logic here
  }

  @NotNull
  public String getComponentName() {
    return "MyComponent";
  }

  public void sayHello() {
    // Show dialog with message
    Messages.showMessageDialog(
        "Hello World!",
        "Sample",
        Messages.getInformationIcon()
    );
  }
}
2.2 액 션 추가
플러그 인 을 사용 하 는 사용자 가 메뉴 나 다른 방식 으로 플러그 인 을 클릭 할 수 있 도록 Action 을 추가 해 야 합 니 다.

Action 의 주요 작업 은 응용 프로그램 과 MyComponent 대상 을 만 드 는 것 입 니 다.코드 는 다음 과 같 습 니 다.

package com.cdai.plugin.rapidg;
import com.intellij.openapi.actionSystem.AnAction;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.application.Application;
import com.intellij.openapi.application.ApplicationManager;

/**
 * Say Hello Action
 * User: cdai
 * Date: 13-11-4
 * Time:   10:16
 */
public class SayHelloAction extends AnAction {
  @Override
  public void actionPerformed(AnActionEvent e) {
    Application application = ApplicationManager.getApplication();
    MyComponent myComponent = application.getComponent(MyComponent.class);
    myComponent.sayHello();

  }
}
2.3 프로필
사실 앞의 두 단계 에 Component 와 Action 을 새로 만 드 는 동시에 IDEA 는 META-INF/plugin.xml 에 자동 으로 등록 해 줍 니 다.
우리 가 방금 추가 한 Application Component 와 Action 은노드 에서 plugin.xml 는 최종 적 으로 아래 의 모습 입 니 다.

<idea-plugin version="2">
 <id>com.cdai.plugin.rapidg</id>
 <name>CDai's Rapid Generator Plugin</name>
 <version>1.0</version>
 <vendor email="[email protected]" url="http://www.yourcompany.com">CDai</vendor> 

 <description><![CDATA[
   Enter short description for your plugin here.<br>
   <small>most HTML tags may be used</small>
   ]]></description> 

 <change-notes><![CDATA[
   Add change notes here.<br>
   <small>most HTML tags may be used</small>
   ]]>

 </change-notes>

 <!-- please see http://confluence.jetbrains.net/display/IDEADEV/Build+Number+Ranges for description -->
 <idea-version since-build="107.105"/>

 <!-- please see http://confluence.jetbrains.net/display/IDEADEV/Plugin+Compatibility+with+IntelliJ+Platform+Products

    on how to target different products -->
 <!-- uncomment to enable plugin in all products
 <depends>com.intellij.modules.lang</depends>
 -->

 <application-components>
  <!-- Add your application components here -->
   <component>
     <implementation-class>com.cdai.plugin.rapidg.MyComponent</implementation-class>
   </component>
 </application-components>

 <project-components>
  <!-- Add your project components here -->
 </project-components>

 <actions>
  <!-- Add your actions here -->
   <action id="SayHello" class="com.cdai.plugin.rapidg.SayHelloAction" text="Say Hello!">
     <add-to-group group-id="WindowMenu" anchor="first"/>
   </action>
 </actions>

 <extensions defaultExtensionNs="com.intellij">
  <!-- Add your extensions here -->
 </extensions>
</idea-plugin>
3.디 버 깅 실행
Run/Debug 설정 대화 상 자 를 열 고 Plugin 형식의 Use classpath of module 을 추가 하여 방금 예제 항목 을 선택 하 십시오.

실행 하면 새로운 Intellij IDEA 인 스 턴 스 를 시작 하고 설정 을 다시 시작 하 는 과정 을 볼 수 있 습 니 다.플러그 인의 이름 이 plugin.xml 의의 값 입 니 다.우 리 는 우리 가 방금 개발 한 플러그 인 만 선택 하고 다른 것 은 무시 할 수 있 습 니 다.지금 Window 를 통 해서->Say Hello!플러그 인 을 터치 할 수 있 습 니 다.대화 상자 가 팝 업 됩 니 다.


재 미 있 는 것 은 plugin.xml 의 다른 설명 은 플러그 인 이 충돌 할 때 사용자 에 게 표시 되 고 문 제 를 플러그 인 작성 자 에 게 보고 합 니 다.

4.플러그 인 설정 패 널
많은 플러그 인 들 이 Settings 에 설정 페이지 가 있 습 니 다.이 제 는 플러그 인 에 설정 페이지 를 추가 하 는 방법 을 간단하게 소개 합 니 다.
먼저 MyComponent 류 를 개조 해 보 자.주요 변 화 는 Configurable 인 터 페 이 스 를 하나 더 실현 하 는 것 이다.이 인터페이스 에는 createComponent 방법 이 있 습 니 다.이 방법 은 Swing 의 JComponent 대상 을 되 돌려 주면 Settings 에 표 시 됩 니 다.또한 IDEA 가 제공 하 는 Swing Designer 디자이너 를 사용 하 는 것 이 편리 합 니 다.자동 으로 생 성 된 스타일 과 레이아웃 코드 는 수정 되 지 않도록 우리 에 게 보이 지 않 기 때문에 최종 코드 는 간결 합 니 다.

최종 효 과 는 바로 이렇다.우 리 는 디자이너 에서 디자인 한 패 널 을 오른쪽 에 끼 워 넣 었 다.

5.대화 상자 가 있 는 플러그 인
흔히 볼 수 있 는 플러그 인 은 플러그 인 에 대응 하 는 메뉴 항목 을 클릭 한 후 대화 상 자 를 팝 업 하 는 것 입 니 다(예 를 들 어 작업 공간 에 있 는 클래스 검색,SVN 제출 전 코드 확인 등).사실은 간단 합 니 다.실현 방법 은 먼저 Dialog 를 만 든 다음 에 Swing 디자이너 에서 Dialog 의 컨트롤 레이아웃 을 설계 하고 마지막 으로 Action 에 대화 상 자 를 표시 하 는 것 입 니 다.구체 적 인 코드 는 열거 하지 않 겠 습 니 다.필요 한 것 이 있 으 면 저 에 게 요구 하 셔 도 됩 니 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기