繁体   English   中英

使用fileset和pathelement在build.xml中设置classpath之间的区别

[英]Difference between setting classpath in build.xml using fileset and pathelement

我有一个构建文件,声明了如图所示的类路径

<path id="compile.classpath">
    <fileset dir="${basedir}/lib"    includes="**"/>        
    <fileset dir="${jboss.home}/lib" includes="**"/>        
    <pathelement path ="${build.classes.dir}"/>
</path>

我试图寻找的文件,但我无法理解使用 pathelement

我知道ID在执行任务时用于引用此类路径,而fileset包含jar文件。

编辑1: 我的疑问是为什么我们不能使用fileset来包含类文件代替pathelement

最新编辑:

我的疑问是为什么我们不能使用文件集来包含类文件代替pathelement?

如果您使用文件集,那么您将在路径中添加一组类文件,如下所示:

CLASSPATH=classes/MyClass1.class:classes/MyClass2.class:classes/MyClass3.class:....

当Java期望看到的只是:

CLASSPATH=classes

只有jar(和WAR,EAR等)文件在类路径中明确列出(Java将打开它们并加载它们的类文件),因此需要在ANT中使用文件集。

更新

这是Oracle文档:

.jar,.zip或.class文件的类路径。 每个类路径应以文件名或目录结尾,具体取决于您将类路径设置为:

  • 对于包含.class文件的.jar或.zip文件,类路径以.zip或.jar文件的名称结尾。
  • 对于未命名包中的.class文件,类路径以包含.class文件的目录结束。
  • 对于命名包中的.class文件,类路径以包含“root”包的目录(完整包名中的第一个包)结束。

已经有关于“pathelements”类似的问题在这里 从提供的文档:“如果它的路径结构类似于您的示例:”类似路径的结构可以包含对通过嵌套元素的另一个类似路径的结构(路径本身就是资源集合)的引用“

 <path id="base.path">
  <pathelement path="${classpath}"/>
  <fileset dir="lib">
    <include name="**/*.jar"/>
  </fileset>
  <pathelement location="classes"/>
</path>

如果是类路径结构:“path属性旨在与预定义路径一起使用”

<classpath>
  <pathelement path="${classpath}"/>
  <pathelement location="lib/helper.jar"/>
</classpath>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM