我正在使用Maven将WAR文件部署到AWS。我计划使用"mvn-deploy",这将把war文件ssh到AWS。我在关注http://maven.apache.org/plugins/maven-deploy-plugin/examples/deploy-ssh-external.html.
这是我的POM文件
<project>
...
<distributionManagement>
<repository>
<id>ssh-aws</id>
<url>scpexe://<ec2 instance>.compute-1.amazonaws.com</url>
</repository>
</distributionManagement>
<build>
<extensions>
<!-- Enabling the use of FTP -->
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-ssh-external</artifactId>
<version>1.0-beta-6</version>
</extension>
</extensions>
</build>
..
</project>
这是我的设置.xml
<server>
<id>ssh-aws</id>
<username>aws-user</username>
</server>
唯一的问题是我无法在pom.xml的distributionManagement节点中找到url。
我能够通过以下方式在AWS服务器中进行ssh。
ssh -i ~/pemfile/pemfile-key.pem aws-user@<ec2 instance>.compute-1.amazonaws.com
但是当我运行mvn-clean-deploy时,我会收到这个。。
Exit code: 1 - Permission denied (publickey). -> [Help 1]
提前谢谢。
您需要在maven配置文件settings.xml中添加私钥路径,即pem文件以及服务器id和用户名,如下所示:
<settings>
...
<servers>
<server>
<id>ssh-aws</id>
<username>aws-user</username>
<privateKey>/path/to/your/private/key</privateKey>
</server>
</servers>
...
</settings>