开发者

In the ANT build.xml, why can't we use both jar and classpath together in the java task

In the ANT build.xml, why can't we use both jar and classpath together in th开发者_运维知识库e Java task?


Unless I understood you question wrong you should be able to do that easily. I am assuming you want to include jars in a classpath and a set of jars in another folder.

You can do something like this:-

<property name="classpath" value="./WEB-INF/lib"/>
<property name="dependency" value="./libs"/>
<path id = "my-classpath">
        <fileset dir = "${classpath}">
                <include name = "**/**.jar"/>
        </fileset>
        <fileset dir = "${dependency}">
                <include name = "**/**.jar"/>
        </fileset>      
</path>

<javac destdir="${build.dir}">
  <src path="${src.dir}"/>
  <classpath refid="my-classpath"/>
</javac>

EDIT

As you also mentioned java task. The below example should be what you are looking for I think. Let me know if this is not it.

 <path id="project.class.path">  
     <pathelement location="somejar.jar"/>  
     <pathelement path="${java.class.path}/"/>  
     <pathelement path="${additional.dependencies}"/>  
 </path>  
 <java jar="test.jar" classpathref="project.class.path" ... />   


I assume you mean why the java task ignores your classpath settings when you use it with a jar attribute. From the ant java docs:

When using the jar attribute, all classpath settings are ignored according to Sun's specification.

and from that link:

When you use this option, the JAR file is the source of all user classes, and other user class path settings are ignored.

So the answer is simply that it's like that because it's following the spec.

If this is an issue for you, you can either add the jar file in question to the classpath and then use the normal classname attribute to specify the class to run, or if you're building the jar yourself you can add a Class-Path entry to the manifest file when you create it. The manifest and manifestclasspath tasks may be helpful there.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜