有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

ant将java库包含到自己的库中

我为自己创建了一个小框架,我想在多个项目中使用它。我还希望分布式jar文件包含所有外部库,这样我的项目只需要包含我的库就可以访问所有外部库

我需要它来简化外部库的更新

所以我把这个放在我的构建中。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”这样的外部库时,我得到了一个错误,即找不到这个库

是否有更好的方法将外部库包含到我自己的库中,以便我的项目可以使用它们


共 (4) 个答案

  1. # 1 楼答案

    取决于IDE。。。如果您使用的是Eclipse,那么它非常简单。。。转到属性->;构建路径,然后添加库

  2. # 2 楼答案

    可以使用One-jarFat Jar。 如果你使用maven,你可以使用maven汇编插件

  3. # 3 楼答案

    您可以发布一个Maven工件,然后框架的用户可以使用它,而不必自己包含依赖项——您的pom就足够了

    如果您想创建一个“全合一”的工件,请考虑一些类似OneJarjarjar或Maven的{a4}来创建一个没有外部依赖项的jar。

  4. # 4 楼答案

    标准类加载器无法在jar中找到类文件,而jar本身就在jar中。必须将每个jar添加到类路径,而不是嵌套jar

    顺便说一句,允许嵌套JAR可能不是个好主意:每个项目最终都会有6到7个commons lang或log4j版本,因为许多库依赖于它们