我正在使用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>
这是我的settings.xml
<server>
<id>ssh-aws</id>
<username>aws-user</username>
</server>
唯一的问题是我无法弄清楚pom.xml中 url in distributionManagement 节点。
我可以通过以下方式在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]
提前致谢。
答案 0 :(得分:1)
您需要将路径添加到私钥,即PEM文件以及maven配置文件中的服务器ID 和用户名 settings.xml ,就像这样:
<settings>
...
<servers>
<server>
<id>ssh-aws</id>
<username>aws-user</username>
<privateKey>/path/to/your/private/key</privateKey>
</server>
</servers>
...
</settings>