【问题标题】:Can I use Spring roo in existing project that doesn't use Maven?我可以在不使用 Maven 的现有项目中使用 Spring roo 吗?
【发布时间】:2009-08-05 07:40:48
【问题描述】:

Spring Roo 可以在 follow standard maven layout 的现有项目中使用。 到目前为止,这似乎意味着不使用 maven 的项目不走运。

我想知道这些现有项目的选项(如果有的话)是什么。

重新安排项目布局以符合 Maven 布局?由于 CVS 中的 method for moving around directories 极具侵入性,这对于在 CVS 中有多年历史的项目来说似乎是非常困难的路径。

是否有任何其他选项,例如修改 Maven 配置以使用非标准布局?我从我之前阅读过的关于这个主题的文章中回想起,Maven 的CoC 方法不支持这种非标准布局。

编辑:

Rich 在下面的回答表明,覆盖 super-pom 中的默认值是微不足道的。这给我们留下了一个问题,即 Spring Roo 是否会很好地适应这些修改。这是值得怀疑的,因为 Spring Roo 本身并不使用 Maven。

编辑:

Rich 的更新答案表明,默认情况下,ROO 将使用硬编码路径,并且不会在您的 pom.xml 中选择修改 所以到目前为止的答案似乎是不可能开箱即用,但可以通过一些自定义编码来完成(或要求 ROO 团队支持这一点)

【问题讨论】:

    标签: spring maven-2 spring-roo


    【解决方案1】:

    我们(Roo 团队)没有理由不能让 MavenPathResolver 允许使用自定义路径,而我创建 PathResolver 抽象的有意原因之一是支持自定义公共路径位置,而不仅仅是针对 Maven 非默认位置也适用于其他构建系统,如 Ant+Ivy。所有基本 Roo 附加组件都已编写为使用 PathResolver,因此支持这一点应该不是很大的努力。如果您仍然希望获得此支持,请向Roo Jira instance 添加增强请求。

    【讨论】:

    • 感谢 Ben 的详细回答。自从我问了这个问题后,我换了工作。在我之前的工作中,我正在评估在独立使用 AspectJ 和 Spring 的现有项目中使用 Roo 的可能性。但项目布局并非基于 Maven。因此问题。
    【解决方案2】:

    您可以修改 Maven 以使用一组不同的约定。标准集继承自Maven super POM,可以通过重新定义相关属性来覆盖。

    例如,要将源目录从 src/main/java 更改为 src,将测试目录更改为 test-src,并将资源目录从 src/main/resources 更改为资源,您可以在 POM 中设置以下内容:

    <build>
      <sourceDirectory>src</sourceDirectory>
      <testSourceDirectory>test-src</testSourceDirectory>
      <resources>
        <resource>
          <directory>resources</directory>
        </resource>
      </resources>
    </build>
    

    请注意,一些插件可能不使用标准属性来访问位置(例如硬编码目标/类而不是使用 ${project.build.outputDirectory},因此您可能会遇到奇怪的问题。


    更新:看起来 Roo 目前拥有这些 properties hardcoded。您可以替换 MavenPathResolver 或添加额外的解析器以使用自定义属性。

    如果这对您来说是一个真正的问题,您可以raise a request 修改 MavenPathResolver 以允许自定义位置。

    【讨论】:

    • 您知道 Spring ROO 是否可以使用这些修改后的配置吗?我认为 Spring ROO 本身不使用 Maven,但生成的项目确实使用它。
    • 对不起,我不知道你会怎么做。您可以根据 Spring 在其他地方的方法进行猜测。您可以尝试调试 Roo 以查看 MavenPathResolver 是如何贡献的。
    【解决方案3】:

    从 Roo 1.2 开始,它还没有实现。

    【讨论】:

      猜你喜欢
      • 2019-11-26
      • 1970-01-01
      • 1970-01-01
      • 2014-12-10
      • 1970-01-01
      • 1970-01-01
      • 2012-10-16
      • 2011-08-11
      • 1970-01-01
      相关资源
      最近更新 更多