簡體   English   中英

將Java庫包含到自己的庫中

[英]Include java libraries into own library

我為自己創建了一個小框架,希望在多個項目中使用。 我還希望分布式jar文件包含所有外部庫,以便我的項目只需要包含我的庫即可訪問所有外部庫。

我需要這樣做來簡化外部庫的更新。

因此,我將其放置在build.xml中,該文件將dist / lib中的所有庫添加到我自己的jar文件中。

<target name="-post-jar">  
    <!-- Include all java libraries -->
    <fileset dir="dist/lib" id="extern.libs">
        <include name="*.jar" />
    </fileset>

    <!-- Add the libraries from the fileset to the project.jar -->
    <jar jarfile="${dist.jar}" update="true">  
        <zipgroupfileset refid="extern.libs"/>
    </jar>  
</target>  

但是,當我嘗試使用“ org.zkoss.zk.ui.Component”之類的外部庫時,出現錯誤,提示找不到該庫。

有沒有更好的方法將外部庫包含到我自己的庫中,以便我的項目可以使用它們?

您可以發布一個Maven工件,然后您的框架用戶就可以使用它,而不必自己包含依賴項-您的pom就足夠了。

如果要創建“多合一”工件,請考慮使用OneJarjarjar或Maven的Shade插件之類的東西來創建不具有外部依賴項的jar。

標准類加載器無法在罐子本身中的罐子中找到類文件。 您必須將每個罐子添加到類路徑,而不是嵌套罐子。

順便說一句,允許嵌套jar可能不是一個好主意:每個項目最終都會有6或7個commons-lang或log4j版本,因為許多庫都依賴它們。

您可以使用One-jarFat Jar 如果使用maven,則可以使用maven-assembly插件。

取決於IDE ...如果您使用的是Eclipse,則非常簡單...轉到Properties-> Build Path然后添加庫...

暫無
暫無

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

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