maven设置自定义属性

时间:2013-01-02 16:51:16

标签: maven build pom.xml

我对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之外。我不想无缘无故地干涉他们的全局设置,我希望尽可能多地保留它。

2 个答案:

答案 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的主要用例/最佳实践。

不是你不应该这样做 - 因为它很方便。只需确保将构建项目与部署项目分开。