【发布时间】:2016-07-05 16:26:14
【问题描述】:
我想使用一个 ant 变量定义一个 ivy 依赖项。现在我有这个:
<dependency org="my.org.name" name="jar_name" rev="${release_version}"/>
在我的 ivysettings 文件中,我有:
<property name="release_version" value="${ANT_RELEASE_VERSION}"/>
我的 ant 脚本执行的第一个任务是这样的:
<target name="getVersion">
<echo message="Getting current version number" />
<java classname="my.org.Version" >
<classpath>
<pathelement location="${SOME_PATH}/lib/some-jar.jar"/>
</classpath>
<redirector outputproperty="ANT_RELEASE_VERSION" />
</java>
<echo message="Version: ${ANT_RELEASE_VERSION}" />
</target>
现在这个 WORKS 在运行时。当我执行我的任务时,一切都按预期进行,并且我得到了正确的版本号。问题是,由于以下错误,eclipse 无法编译类路径:
${ANT_RELEASE_VERSION}: not found
我尝试通过在下面定义一个eclipse字符串替换变量来解决这个问题:
Window -> Preferences -> Run/Debug -> String Substitution
我设置:
ANT_RELEASE_VERSION = 4.4.9
然而 eclipse 仍然无法解决我的依赖关系,这导致我的项目永远无法编译(在 eclipse 中)。我正在尝试做的事情可能吗?有没有办法让 eclipse 编译而不在我的 ant 脚本/常春藤设置文件中硬编码版本号?
【问题讨论】:
-
你看过 ivy buildnumber 任务吗?它根据已发布到您的存储库的文件递增,非常有用:ant.apache.org/ivy/history/latest-milestone/use/…
-
@MarkO'Connor 我确实看到了这一点,但我们刚刚开始使用 nexus repo,不幸的是我们没有发布旧版本号。我也不想通过发布 X 版本只是为了让它工作。
-
您可以设置“defaultBuildNumber”属性以随时启动您。如果您使用的是 Nexus,我强烈建议您使用此任务。