Maven不在Mac OS X上使用配置文件属性

时间:2013-12-17 09:44:34

标签: java macos maven

假设我有个人资料

    <profile>
        <id>ak</id>
        <properties>
            <db.host>localhost</db.host>
            <db.name>ak_cit</db.name>
            <db.user>user</db.user>
            <db.password>pass</db.password>
        </properties>
    </profile>

在pom.xml的根目录中有默认值

<db.host>NOT_DEFINED</db.host>
<db.name>NOT_DEFINED</db.name>
<db.host.reporting.db>NOT_DEFINED</db.host.reporting.db>
<db.name.reporting.db>NOT_DEFINED</db.name.reporting.db>

我在启动应用程序mvn -Pak clean install时遇到的问题是我收到异常,因为数据库NOT_DEFINED不存在。相同的命令在ubuntu或windows上完全正常。在询问我的同事之后,我发现他们中的一些人在OS X上遇到了同样的问题。

现在唯一对我有用的解决方案是通过命令行传递变量:-Ddb.host=localhost -Ddb.user=user -Ddb.password=pass -Ddb.name=ak_cit。这个解决方案的问题在于需要传递很多属性。

有人知道如何解决这个或可能导致此类问题的原因吗?

1 个答案:

答案 0 :(得分:0)

问题出在settings.xml中。覆盖了我选择的个人资料。检查完我的其他系统后,我注意到settings.xml中没有定义配置文件。

在解决这个方面的巨大帮助是插件echoproperties

<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-antrun-plugin</artifactId>
        <version>1.7</version>
        <executions>
            <execution>
                <phase>validate</phase>
                <goals>
                    <goal>run</goal>
                </goals>
                <configuration>
                    <tasks>
                        <echoproperties />
                    </tasks>
                </configuration>
            </execution>
        </executions>
    </plugin>
</plugins>