【问题标题】:Eclipse IvyDE Dependency VariableEclipse IvyDE 依赖变量
【发布时间】: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,我强烈建议您使用此任务。

标签: java eclipse ant ivy


【解决方案1】:

尝试通过以下方式创建 Eclipse 属性:

Window > Preferences > Ant > Runtime > [Tab] Properties 

并创建一个名为 ANT_RELEASE_VERSION 的属性 使其与
一起工作 ant 脚本在 Eclipse 中启动。

【讨论】:

  • 我试过了,还是不行。我认为这是因为它需要在 ivy 中进行评估,而不是在 ant 中。
【解决方案2】:

您可以在 Eclipse 项目中创建一个属性文件,并从项目 Ivy 设置中引用它。

在您的项目中创建一个新的 .properties 文件。

把你的属性放在这个文件中。在您的情况下,您可以创建属性“release_version”并为其分配所需的版本号。

之后,通过从右键菜单中选择“属性”来打开 Ivy 类路径容器属性对话框。

接下来,打开“设置”标签。选中“启用项目特定设置”复选框。在“属性文件”列表中添加属性文件。

按“确定”。

【讨论】:

    猜你喜欢
    • 2013-07-15
    • 1970-01-01
    • 2013-04-23
    • 1970-01-01
    • 2012-06-11
    • 2012-01-03
    • 2015-06-01
    • 2011-12-21
    • 2014-04-20
    相关资源
    最近更新 更多