簡體   English   中英

將嵌入式插件jar文件添加到項目

[英]Add embedded plugin jar file to a project

我需要通過修改類路徑條目將一些jar庫添加到帶有我的插件的項目中。 但是我找不到辦法。 我試圖將jar lib嵌套在插件的lib文件夾中,但是當插件打包為Jar並部署在Eclipse IDE上時,我無法訪問它們。 有什么辦法嗎? 什么是正確的方法?

這是將lib添加到目標項目的代碼:

private void addLocalLibrary(IProject parent, String name, boolean source, boolean javadoc)
    throws CoreException, URISyntaxException, IOException {
IClasspathEntry[] oldEntries = this.javaProject.getRawClasspath();
// +1 for our src/main/java entry
IClasspathEntry[] newEntries = new IClasspathEntry[oldEntries.length + 1];
System.arraycopy(oldEntries, 0, newEntries, 0, oldEntries.length);

String pluginDir = new File(Activator.getPluginDir()).getAbsolutePath().replace("file:", "");
IPackageFragmentRoot lib = this.javaProject.getPackageFragmentRoot(pluginDir + "/" + name);
IPackageFragmentRoot src = null;
if (source) {
    src = this.javaProject.getPackageFragmentRoot((pluginDir + "/" + name).replace(".jar", "-sources.jar"));
}
IClasspathAttribute atts[] = null;
if (javadoc) {
    IPackageFragmentRoot doc = this.javaProject
        .getPackageFragmentRoot((pluginDir + "/" + name).replace(".jar", "-javadoc.jar"));
    atts = new IClasspathAttribute[] {
        JavaCore.newClasspathAttribute("javadoc_location", doc.getPath().toString()), };
}
IPath srcPath = src == null ? null : src.getPath();
newEntries[oldEntries.length] = JavaCore.newLibraryEntry(lib.getPath(), srcPath, null, null, atts, true);
this.javaProject.setRawClasspath(newEntries, null);
}

您可以從現有的庫jar中創建一個插件,並將其添加到要使用庫代碼的插件的依賴項中。

為此,請使用“ 來自現有JAR存檔插件”向導 ,該向導位於“ 文件”>“新建”>“項目...”>“插件開發”>“來自現有JAR存檔的插件”下

這樣,您可以將現有的jar包裝在插件項目中。 您也可以將此插件用作自己代碼的基礎。 如果要打包為單個jar,請確保將庫jar解壓縮到插件中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM