Spring Roo可用于follow standard maven layout的现有项目。 到目前为止,这似乎意味着不使用maven的项目运气不佳。
我想知道这些现有项目的选项(如果有的话)。
重新安排项目布局以符合Maven布局?由于CVS中的method for moving around directories非常具有侵入性,因此对于具有多年CVS历史的项目来说,这似乎是非常困难的。
是否还有其他选项,例如修改Maven配置以使用非标准布局?我从之前关于这个主题的阅读中回忆起来,Maven的CoC方法不赞成这种非标准布局。
修改
Rich的回答如下所示,超越pom中的默认值是微不足道的。这让我们想到Spring Roo是否能够很好地完成这些修改。考虑到Spring Roo不使用Maven本身,这是值得怀疑的。
修改
Rich的更新答案显示,默认情况下,ROO将使用硬编码路径,并且不会在您的pom.xml中选择修改 所以答案到目前为止似乎是开箱即用,但可以通过一些自定义编码(或要求ROO团队支持)来完成。
答案 0 :(得分:2)
您可以修改Maven以使用一组不同的约定。标准集继承自Maven super POM,可以通过重新定义相关属性来覆盖。
例如,要将sources目录从src / main / java更改为src,将测试目录更改为test-src,将资源目录从src / main / resources更改为您在POM中设置以下内容的资源: / p>
<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以允许自定义位置。
答案 1 :(得分:2)
我们(Roo团队)没有理由不让MavenPathResolver允许使用自定义路径,我创建PathResolver抽象的一个有意义的原因是支持不仅对Maven非默认位置定制公共路径位置还有像Ant + Ivy这样的其他构建系统。所有基础Roo附加组件都已编写为使用PathResolver,所以它不应该是支持它的主要工作。如果您仍然喜欢此支持,请向Roo Jira instance添加增强请求。
答案 2 :(得分:1)
从Roo 1.2开始,它没有实现。