我是maven的新手,在这个和其他资源上阅读有关个人资料的信息
我理解我们使用配置文件,如果我们想要覆盖一些默认值或做一些特定的东西。
在我的遗留项目中,我可以看到下面的配置文件,我只看到覆盖app.mode属性。但我没有看到使用这个属性 进一步建设的任何地方。我相信这里做了什么特别的事?
<profiles>
<profile>
<id>dev</id>
<properties>
<app.mode>dev</app.mode>
</properties>
</profile>
</profiles>
答案 0 :(得分:1)
可以配置Maven配置文件,但您可以配置它们。以下是一些用例:
a)该项目有几个开发人员。出于政治和宗教原因,一些开发人员正在使用Windows,而一些开发人员正在使用Linux。该团队开发了两个配置文件,一个用于Linux,一个用于Windows,设置项目根路径,临时文件夹路径,支持程序路径。这些变量被注入依赖项计算过程,以及需要此信息的从属过程。这些配置文件设置将放入每个程序员的settings.xml文件中。
b)其中一位开发商将贷款给该项目一周。她不想为项目标准目录布局等重新配置她的计算机,所以她创建了自己的settings.xml,允许她在自己的根目录下工作。
c)该项目使用持续集成服务器,如Hudson或Jenkins。 CI需要有自己的数据库进行集成测试,所以它可能会有类似&#34; devtest&#34;和&#34; prodtest&#34;和&#34;最全的&#34;,取决于要求。
答案 1 :(得分:0)
如果将命令行上的-Pdev传递给Maven,则配置文件将激活。
mvn -Pdev
请参阅http://maven.apache.org/guides/introduction/introduction-to-profiles.html。
此配置文件的作用是将属性app.mode
的设置从之前的任何内容更改为dev
。您将需要搜索您的pom文件(以及任何模块的poms)以使用$[app.mode}
来查看发生了什么 - 如果有的话。
Maven属性不会自动传递给Spring,但是将配置重新导出为系统属性以使它们对Spring可见并不罕见。这通常发生在确保配置和故障安全的配置中,但是很明显,您仍然会在某个地方看到${app.mode}
。
答案 2 :(得分:0)
如果设置的属性没有在构建中的任何其他地方使用过(你检查过任何子模块吗?)那么问题的答案就是“在这种情况下它什么都不做。”
但是,一般来说,设置这样的属性会使它在构建的后期可用,以防你需要它。如果我不得不猜测,我会说这是代码不完整清理或过早优化的结果。
答案 3 :(得分:0)
我认为你的期望是正确的。它用于将app.mode参数传递给spring。看到 How can I use maven profile Id value in spring bean files?
http://spring.io/blog/2011/02/11/spring-framework-3-1-m1-released/