Java蚂蚁工作如何用我的罐子运送log4j罐子



只是试图升级一些旧内容,其中一部分我需要将使用log4j的自定义jar捆绑。我确实为<javac>任务添加了以下内容,该任务成功地编译了。

<path id="my.classpath">
    <fileset dir="${mainpath}">
        <include name="**/*log4j*.jar"/>
    </fileset>
</path>
    <javac srcdir="src/java" destdir="build/filez/java" debug="on" deprecation="no"
           includes="my/instruments/**/*, org/apache/log4j/**/*">
        <classpath refid="my.classpath"/>
    </javac>

但是,在我的<jar>作业中,我看不到带有自定义JAR包装的log4j依赖关系。这可能是一个愚蠢的问题,但是如何确保从另一个应用程序调用我的自定义Jar不会失败,因为依赖性未包装?只要classloader在目标应用程序中加载log4j,就可以了吗?

此外,我需要在清单中添加一些东西吗?

我无法使用Maven(是的)一会儿,因此无法解决Maven

无法解此问题。

您可以使用一Jar将代码与依赖关系一起包装到一个大型可执行罐中。

它可以用作命令行的独立工具,也可以用作build.xml。

中定义的任务。
<!-- Construct the One-JAR file -->   
<one-jar destfile="hello.jar" manifest="hello.mf">
    <main>
        <!-- Construct main.jar from classes and source code -->
        <fileset dir="${classes.dir}/src"/>
    </main>
    <lib>
        <fileset file="${build.dir}/lib.jar" />
    </lib>
</one-jar>

最新更新