这是我的POM中的示例配置文件:
<profiles> <profile> <id>QA</id> <activation> <activeByDefault>true</activeByDefault> </activation> <properties> <jdbc.url>jdbc:mysql://127.0.0.1:3306/SomeDB</jdbc.url> <jdbc.username>webapp</jdbc.username> <jdbc.password>somepassword</jdbc.password> </properties> </profile> ...
然后,我的资源文件夹中就有一个属性文件,如下所示:
jdbc.url = ${jdbc.url} jdbc.username = ${jdbc.username} jdbc.password = ${jdbc.password}
最后,我在POM中打开过滤功能:
<build> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> </resource> </resources> ...
这实际上是一个简化的示例,但是您明白了。基本上我跑步的时候
mvn install -P QA
Maven将过滤我的app.properties文件,将所有占位符替换为配置文件中保存的值,然后部署填充的属性文件。
所有这些的问题在于,我喜欢利用Eclipse中的服务器机制,在该机制中,Tomcat在IDE中运行。我的项目在此实例上运行,Eclipse负责更新,重新部署等。但是,Maven不在画面之列,但是在IDE内进行部署时,永远不会正确填充此属性文件。
因此,如何继续在IDE中运行我的项目,但如何正确填充此属性文件?
谢谢亚历克斯。我最终安装了Apache Maven(Eclipse IAM)的Eclipse Integration,以前是Q for Eclipse。
此插件解决了两个问题:在Eclipse中的“发布到服务器”事件中填充属性文件,以及填充WEB-INF / lib文件夹。以前,即使我运行mvn eclipse:eclipse来满足我在Eclipse中的构建路径,它也没有将这些依赖项正确地发布到嵌入式服务器。这个插件可以做到这一点。解决了这两个问题后,我发现使用嵌入式服务器在Eclipse中开发Maven项目没有其他障碍。