Java Ant作业如何随我的jar一起发布Log4j jar
我只是想升级一些旧东西,其中一部分我需要打包使用Log4j的定制jar。我确实为成功编译的Java Ant作业如何随我的jar一起发布Log4j jar,java,jar,ant,log4j,Java,Jar,Ant,Log4j,我只是想升级一些旧东西,其中一部分我需要打包使用Log4j的定制jar。我确实为成功编译的任务添加了以下内容 <path id="my.classpath"> <fileset dir="${mainpath}"> <include name="**/*log4j*.jar"/> </fileset> </path> <javac srcdir="src/java" destdir="bu
任务添加了以下内容
<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>
然而,在我的
工作中,我看不到任何log4j
依赖项与我的定制jar打包在一起。这可能是一个愚蠢的问题,但是如何确保我的自定义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>
如果要在jar中包含一个文件,该文件由jar
任务控制,而不是javac
。您是否需要在jar中包含log4j取决于它是运行时依赖项还是编译时依赖项!!请回答一个问题!我需要在舱单上添加什么吗?我正在向这个one-jar中添加一个名为'my manifest.MF'的清单。除了主类之外,我什么都没有!这不是Ant的一部分-这是自定义的东西?这是一个外部Ant任务,将它们用于Ant本身没有内置的功能是很常见的