IntelliJ Idea 플러그 인 개발 에 사용자 정의 라 이브 러 리 추가 (Library)
IntelliJ Idea 플러그 인 개발 을 어떻게 진행 하 는 지 참고 하 시기 바 랍 니 다.http://www.jetbrains.org/intellij/sdk/docs/welcome.html
IntelliJ Idea 라 이브 러 리 는 전역 라 이브 러 리, 프로젝트 라 이브 러 리, 모듈 라 이브 러 리 로 나 뉜 다.
예시:
ClasspathComputer 클래스 를 정의 하고 라 이브 러 리 에 가입 할 jars 경로 나 classes 경 로 를 가 져 옵 니 다.
public class ClasspathComputer {
// jar List
public static List getClassRoot(String librariePath){
File file = new File(librariePath);
List list = new ArrayList();
if(file.exists()){
if(file.isFile()){
list.add(file);
}else{
getClassFile(file,list);
}
}
List rltList = new ArrayList();
for(int i=0;i list){
if(parent.exists()){
File[] files = parent.listFiles();
if(files.length > 0){
for(int i=0;i
:
//
public void addApplicationLibrary(Project project,String libraryName,List classesRoots) {
final LibraryTable.ModifiableModel model = LibraryTablesRegistrar.getInstance().getLibraryTable(project).getModifiableModel();
LibraryEx library = (LibraryEx) model.getLibraryByName(libraryName);
//
if(library == null){
library = (LibraryEx) model.createLibrary(libraryName);
}
// jar
final LibraryEx.ModifiableModelEx libraryModel = library.getModifiableModel();
String[] classRootUrls = libraryModel.getUrls(OrderRootType.CLASSES);
for(String classRootURL : classRootUrls){
libraryModel.removeRoot(classRootURL,OrderRootType.CLASSES);
}
// jar
for (String root : classesRoots) {
// jar jar:{path_to_jar}.jar!/
if(root.endsWith(".jar")){
libraryModel.addRoot(VirtualFileManager.constructUrl("jar",root+"!/"), OrderRootType.CLASSES);
}else{
libraryModel.addRoot(VirtualFileManager.constructUrl("file",root), OrderRootType.CLASSES);
}
}
//
ApplicationManager.getApplication().runWriteAction(new Runnable() {
@Override
public void run() {
libraryModel.commit();
model.commit();
}
});
//
Module[] modules = ModuleManager.getInstance(project).getModules();
for(Module module : modules){
if(ModuleRootManager.getInstance(module).getModifiableModel().findLibraryOrderEntry(library) == null){
ModuleRootModificationUtil.addDependency(module,library);
}
}
}
.idea/librarys/ xml 。
, API , 。
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.