我对Maven完全不熟悉。我正在尝试设置一个新项目,这样它就不需要20页长的文档和屏幕截图来设置它。我在Mac和PC上都有开发人员,因此我需要能够自定义catalina.home目录,因为我不能只强加标准位置。我以为我会在〜/ .m2 / settings.xml文件中执行以下操作:
<profile>
<id>my-site-dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<catalina.home>/path/to/apache-tomcat</catalina.home>
</properties>
</profile>
然而,这里的文档:http://maven.apache.org/guides/introduction/introduction-to-profiles.html#Profile_Pitfalls似乎表明我想要完成的是一个坏主意。什么是完成此任务的官方方式,以便在我的pom.xml中我可以引用$ {catalina.home}?
现在我已经使用id声明了我的个人资料,如果我的pom.xml无法加载配置文件“my-site-dev”,我可以通过构建失败吗?我想得到那个&lt; activeByDefault&gt;如果可能的话,在settings.xml之外。我不想无缘无故地干涉他们的全局设置,我希望尽可能多地保留它。
答案 0 :(得分:3)
请勿使用activeByDefault
,因为它会隐藏所有其他个人资料:
以下是您应该使用的内容:
<profiles>
<profile>
<id>path-to-catalina.home-linux</id>
<activation>
<os>
<family>linux</family>
</os>
</activation>
<properties>
<catalina.home>...</catalina.home>
</properties>
</profile>
<profile>
<id>path-to-catalina.home-mac</id>
<activation>
<os>
<family>mac</family>
</os>
</activation>
<properties>
<catalina.home>...</catalina.home>
</properties>
</profile>
<profile>
<id>path-to-catalina.home-windows</id>
<activation>
<os>
<family>windows</family>
</os>
</activation>
<properties>
<catalina.home>...</catalina.home>
</properties>
</profile>
答案 1 :(得分:0)
您可以在pom中使用基于操作系统激活的配置文件。
<profiles>
<profile>
<activation>
<os>
...
你在做什么需要catalina.home?
如果你正在使用maven部署到app服务器,那么你已经超出了“一致的,可移植的构建”规则集 - 并且超出了maven的主要用例/最佳实践。
不是你不应该这样做 - 因为它很方便。只需确保将构建项目与部署项目分开。