gpt4 book ai didi

java - Ant - 构建脚本找不到属性文件中定义的路径元素

转载 作者:行者123 更新时间:2023-12-01 14:42:40 25 4
gpt4 key购买 nike

我有一个 ant 构建脚本,它具有以下目标:

<target name="_initLiveProps">
<property file="buildscripts/live.properties"/>
</target>

<target name="buildLive" depends="_initLiveProps">
<property file="buildscripts/live.properties"/>
</target>

在构建脚本中,我声明了几个路径元素,如下所示:

<path id="project.class.path">      
<pathelement location="./../lib/log4j-1.2.16.jar" />
<pathelement location="${product-def.jar}"/>
</path>

product-def.jar 定义在 buildscripts/live.properties 文件中定义为

product-def.jar=./../lib/product-def/live/product-def.jar

当我构建项目(使用 ant buildLive)时,我收到编译错误,主要是因为它找不到在product-def.jar 中定义的类。

我尝试打印出类路径,如下所示

<property name="myclasspath" refid="project.class.path"/>
<echo message="${myclasspath}" />

输出为 c:\product\lib\log4j-1.2.16.jar;c:\product\${product-def.jar}

以上表明以下定义不正确

<pathelement location="${product-def.jar}"/>

定义属性文件中定义的路径元素的正确方法是什么?

编辑

我认为问题在于,在 buildLive 目标中加载属性文件之前,project.class.path 的定义已初始化。有没有办法延迟 project.class.path 的初始化,直到 buildLive 目标完成之后?

最佳答案

Is there a way to delay the initialisation of project.class.path until after buildLive target has completed?

输入 <path> <target> 内的定义

<target name="_initLiveProps">
<property file="buildscripts/live.properties"/>
<path id="project.class.path">
<pathelement location="./../lib/log4j-1.2.16.jar" />
<pathelement location="${product-def.jar}"/>
</path>
</target>

<path>对于(直接或间接)依赖于此的所有目标都将可见。

如果您有多个加载不同属性的不同目标,例如_initLiveProps , _initDevProps等等,那么你可以输入 <path>定义为通用目标如下

<target name="classpath">
<path id="project.class.path">
<pathelement location="./../lib/log4j-1.2.16.jar" />
<pathelement location="${product-def.jar}"/>
</path>
</target>

<target name="_loadLiveProps">
<property file="buildscripts/live.properties"/>
</target>
<target name="_initLiveProps" depends="_loadLiveProps, classpath" />

<target name="_loadDevProps">
<property file="buildscripts/dev.properties"/>
</target>
<target name="_initDevProps" depends="_loadDevProps, classpath" />

关于java - Ant - 构建脚本找不到属性文件中定义的路径元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15788306/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com