mvn部署到AWS(ssh通过distributionManagement)



我正在使用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>

最新更新