假设我有个人资料
<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/