3

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

提前致谢。

4

1 回答 1

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>
于 2018-11-12T20:14:50.560 回答