mvn部署到AWS(ssh通过distributionManagement)

时间:2012-09-11 21:35:48

标签: maven amazon-web-services maven-3 maven-deploy-plugin

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

提前致谢。

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>