Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven 将tomcat服务器凭据添加到project';s pom而不是settings.xml_Maven_Tomcat - Fatal编程技术网

Maven 将tomcat服务器凭据添加到project';s pom而不是settings.xml

Maven 将tomcat服务器凭据添加到project';s pom而不是settings.xml,maven,tomcat,Maven,Tomcat,我希望能够在本地开发安装的tomcat上构建和部署java webapp,而无需在每台开发计算机上向maven的settings.xml添加tomcat用户的凭据。我发现需要修改settings.xml 我尝试将标记添加到POM文件中,但似乎不允许这样做,因为我在运行“maven compile”时遇到了关于“格式错误的POM”的错误 ... 本地服务器 管理 密码 ... 答案在您引用的文章末尾给出 在settings.xml中设置凭据的原因是,在大多数情况下,您的用户名和密码应该是机密的,

我希望能够在本地开发安装的tomcat上构建和部署java webapp,而无需在每台开发计算机上向maven的settings.xml添加tomcat用户的凭据。我发现需要修改settings.xml

我尝试将标记添加到POM文件中,但似乎不允许这样做,因为我在运行“maven compile”时遇到了关于“格式错误的POM”的错误


...
本地服务器
管理
密码
...

答案在您引用的文章末尾给出

在settings.xml中设置凭据的原因是,在大多数情况下,您的用户名和密码应该是机密的,并且没有理由偏离人们必须适应的设置服务器凭据的标准方法

您的POM文件通常会提交到源代码控制系统中,这使得它成为保存敏感信息的最糟糕的地方。也可以修改设置文件中的密码

最后,POM文件被设计用来保存关于如何构建代码的信息。设置文件旨在为生成设置特定于环境的设置。项目,例如Maven存储库的位置。关于如何部署代码的信息也属于这一类,您和我可能共享一个代码库,但我们不太可能共享同一个tomcat服务器。

您可以尝试以下方法:


org.apache.tomcat.maven
tomcat7 maven插件
2.1
${server url}
${deploy path}
${deploy un}
${deploy pw}

当项目中有许多模块时,请在每个模块中使用
,将每个模块部署到不同的
URL
。例:

在模块A中:


服务器1
http://localhost:8080/manager/text
/模
tomcatscript
p@ssw0rd

在模块B中:


服务器1
http://localhost:8080/manager/text
/模B
tomcatscript
p@ssw0rd

不要忘记将其添加到您的
tomcat/conf/tomcat users.xml中:


然后在终端上,使用以下命令:
mvn tomcat7:[re]deploy-Pserver1

moduleA
将部署到
http://localhost:8080/moduleA

moduleB
将部署到
http://localhost:8080/moduleB


希望这有帮助

我知道这通常不是一个好主意,但是因为所有的开发机器都是相同的,所以可以更容易地检查它,而不必担心修改settings.xml。我只是想知道是否有可能重写此行为。@John是的,只需在POM文件中设置属性。我已经尝试过了,但只得到了关于“格式错误的POM”的错误。我把它放在这里:。。。本地主机管理员密码@约翰,现在我明白了。没有服务器部分用于向存储库之类的项目提供凭据。我不知道它们也可以用于tomcat。一种可能的解决方法是使用一个名为tomcat-settings.xml的本地设置文件。然后像“mvn-s tomcat settings.xml”一样运行maven来获取文件。
<project...>
    ...
    <servers>
        <server>
            <id>localhost</id>
            <username>admin</username>
            <password>password</password>
        </server>
    </servers>
    <dependencies>
    ...
    </dependencies>
</project>