【问题标题】:Ant task to automatize spring roo operations?自动化spring roo操作的Ant任务?
【发布时间】:2014-09-10 16:08:53
【问题描述】:

我需要自动化来自蚂蚁build.xml 的 spring roo 任务。有可能吗?也许这个工作有一个 ant 任务库?

使用 ant 代替 maven/gradle/... 不是我的决定,我对此无能为力。

使用 exec 任务调用 roo shell 只是最后的手段,我想要一个解决方案,我不需要从 ant 进程的 jvm 中跳出来。

【问题讨论】:

  • 致未来的谷歌人:在没有有效答案的情况下,问题将无限期开​​放。如果你有答案,我会用我的支持/接受能力等你。

标签: spring ant spring-roo


【解决方案1】:

Roo Shell 在 OSGi 环境 上执行并要求它运行(使用 OSGi 依赖注入在运行时获取组件)。因此,由于 Ant 作为简单的 java 应用程序运行,无法将 Roo shell 作为 Ant 任务运行,而是使用 ant exec 任务(正如您已经评论的那样)。

对不起。

【讨论】:

  • 好的,但是 roo.sh (roo.bat) 以某种方式调用 roo。它只是使用 java -jar 调用来完成任务。为什么 ant 不能做同样的事情,即使它需要启动一个 osgi 环境来完成这项工作?
  • roo.sh 所做的是运行 Apache Felix,它会像您说的命令一样加载所有 Roo 组件。
  • @eruiz 也许从蚂蚁开始 felix 就足够了?不是有 felix/ant 集成吗?
  • @eruiz 好的,但是如果单个java命令可以调用felix,调用osgi组件并启动spring roo,为什么是一样的蚂蚁不可能?
  • 我不确定你的意思...... Ant 是什么,请查看用户指南以了解有关 Ant 目标的更多信息。
【解决方案2】:

使用 Roo 生成的项目与任何其他 Maven 项目一样,因此您可以使用 exec 任务。像这样的:

<target name="mvn-install">
    <exec executable="mvn">
        <arg value="clean" />
        <arg value="install" />
    </exec>
</target>

【讨论】:

  • 谢谢,不过可能你没看我最后一句:“用exec任务调用roo shell只是万不得已,我想要一个不需要步骤的解决方案从ant进程的jvm中出来。”你也不明白,我想调用 roo 操作(“实体”、“执行”等)而不是 maven 操作。如果这不是我的问题的答案,你会得到一个反对票和一个“不是答案”的标志。
  • 所以,jmvivo 是对的,您不能从 Ant、Maven 调用 Roo Shell 命令……所有 Roo 命令都是 OSGi 组件,因此您需要运行 OSGi 容器来执行它们。
  • 是的,roo.sh 启动了这个 osgi 容器,而这正是我作为 ant "java" 任务必须要做的......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多