在 Maven 中发布时的私有构建信息(db 等)?
Posted
技术标签:
【中文标题】在 Maven 中发布时的私有构建信息(db 等)?【英文标题】:private build information (db, etc) when making a release in maven? 【发布时间】:2012-03-14 08:10:02 【问题描述】:当我想要发布时,如何让开发人员隐藏内容?
例如 - 当发布的时候,我将要创建一个具有不同设置的休眠会话 - 在生活环境中运行的数据库的设置。
如何在 maven-release 期间以其他人看不到它们的方式指定这些?
我在想也许是在构建时使用命令行,设置某种属性?这在企业场景中通常是如何完成的?
【问题讨论】:
【参考方案1】:您可以为您的 Dev、QA 和 Release 环境定义一个单独的 maven profiles,可以使用 mvn 命令的 -P 选项来调用它。以下是需要包含在pom.xml
中的一些示例配置文件 sn-p:
<properties>
<hostEnv>QA</hostEnv>
<hostDB>oracle</hostDB>
</properties>
<profiles>
<profile>
<id>$hostEnv-$hostDB</id>
<activation>
<activeByDefault>true</activeByDefault>
...
</activation>
</profile>
</profiles>
【讨论】:
我远离 activeByDefault - 但是 - 我可以使用 maven pw 加密来加密我在密码字段中输入的内容吗? 您可以使用一些 ant 脚本加密密码,该脚本可以在 maven-antrun-plugin 的帮助下调用【参考方案2】:诸如密码之类的东西属于 settings.xml 而不是 pom.xml 文件。此外,我建议将此类内容放入 Jenkins 等连续集成服务器上的 settings.xml 中。仅将其放在构建机器上的方法可防止其他人意外创建版本。
【讨论】:
以上是关于在 Maven 中发布时的私有构建信息(db 等)?的主要内容,如果未能解决你的问题,请参考以下文章
在 Vue CLI 中使用私有 npm 包服务/构建时的错误和警告