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

标签 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.这个解决方案的问题是有很多属性需要传递。

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

最佳答案

问题出在 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>

关于java - Maven 在 Mac OS X 上不使用配置文件属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20630732/

相关文章:

java - Apache Storm 安装 OS X 中的 ExceptionInInitializerError

java - 在没有站点 :site? 的情况下从 Maven 生成 Findbug HTML 报告的任何简单方法

maven - 为什么 Maven 程序集在 SBT 程序集发现冲突时工作

java - Spring boot webflux无法解析RestController

java - 如何为不同类型的异常设置不同的状态码

java - Java 中私有(private)内部类的访问标志 - 规范与反射 API 不一致?

java - 无法更改 ActionListener 内的 JButton ActionCommand

macos - 是否可以将 curl 设置为在进度条之前显示文件名?

macos - 如何修复 "zsh: command not found: vue"?

java - GRPC clojure BigDecimal 到 java BigDecimal