【问题标题】:tomcat7-maven-plugin - store server url outside of pom.xmltomcat7-maven-plugin - 在 pom.xml 之外存储服务器 url
【发布时间】:2017-08-18 06:23:09
【问题描述】:

我正在开发一些开源项目,不希望将生产服务器的 URL 与源代码一起保存在公共存储库中,但同时我希望有机会使用 tomcat-maven 进行部署-插件。

我尝试将服务器 url 从 pom.xml 移动到 settings.xml,但没有成功。 您能否给我一个提示,将 url 排除在 pom.xml 之外的最佳方法是什么?

非常感谢。

这是我的配置: 设置.xml

<settings>
    <servers>
        <server>
            <id>prod</id>
            <username>deployer</username>
            <password>********</password>
        </server>
    </servers>
</settings>

pom.xml(在项目中)

<project>
    ...
    <profiles>
        <profile>
            <id>prod</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.tomcat.maven</groupId>
                        <artifactId>tomcat7-maven-plugin</artifactId>
                        <version>2.2</version>
                        <configuration>
                            <server>prod</server>
                            <url>http://host:XXXX/manager/text</url>
                            <path>/</path>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>
</project>

更新:是的,可以将其保存在 .properties 文件中,但是:

  1. 将服务器配置保存在几个地方有点奇怪,即~/.m2/settings.xml、application.properties、pom.xml。只要用户名和密码能够存储在 settings.xml 中,最好将服务器 URL 也保留在那里。
  2. 实际上我无法让它工作,所以我一直在努力以这种方式作为解决方法......

更新 2: 刚刚发现,为什么读取属性的方法对我不起作用。我用过:

mvn tomcat7:redeploy

部署应用程序,并且 properties-maven-plugin 没有在 tomcat7-maven-plugin 配置中的占位符中注入属性。由于 deploy 阶段,我更改了 tomcat7-maven-plugin 执行后,属性注入通过调用正常工作:

mvn clean deploy

不过,我想知道,是否可以将服务器 URL 保留在 settings.xml 中?

【问题讨论】:

  • 为什么要把它移到settings.xml ???
  • @davidxxx 如果你的意思是我为什么要将它移动到 settings.xml 而不是 application.properties,那么我刚刚更新了帖子。如果你的意思是,我为什么不喜欢将它保存在 pom.xml 中 - 因为将生产服务器的地址保存在源代码存储库中是一个安全漏洞,即使在私有存储库中也是如此,更何况公共存储库。跨度>

标签: java xml maven production-environment tomcat7-maven-plugin


【解决方案1】:

根据specs,无法在settings.xml中保留服务器URL。

你可以在命令行中设置服务器名称作为参数:

mvn clean tomcat7:deploy -Drelease.server="http://host:XXXX"

而在 pom.xml 中你可以像这样引用参数

        <plugin>
            <groupId>org.apache.tomcat.maven</groupId>
            <artifactId>tomcat7-maven-plugin</artifactId>
            <version>2.2</version>
            <configuration>
                <update>true</update>
                <url>${release.server}/manager/text</url>
                <server>MyServer</server>
                <path>/</path>
            </configuration>
        </plugin>

【讨论】:

    猜你喜欢
    • 2014-07-09
    • 1970-01-01
    • 2014-01-29
    • 2014-08-07
    • 2012-07-01
    • 2014-01-11
    • 1970-01-01
    • 2018-02-20
    • 1970-01-01
    相关资源
    最近更新 更多