10

scp / sshとmavenに関するドキュメントが非常に貧弱であるため、私はさまざまなアプローチを試しました。基本的には、scpexeワゴンとscpワゴンの2つの主要なカテゴリに分類されます。通常、どちらもLinuxとMacの両方で問題なく動作しますが、Windowsでは、すべてのマシンで動作させる方法を見つけることができませんでした。

scpexeアプローチ(完全なパテをインストールしてパスに追加した後)-settings.xml構成:

<server>
    <id>internal</id>
    <username>******</username>
    <password>*******</password>
    <configuration>
        <sshExecutable>plink</sshExecutable>
        <scpExecutable>pscp</scpExecutable>
    </configuration>
</server>

scpアプローチ-settings.xml:

 <server>
      <id>internal</id>
      <username>*********</username>
      <password>*********</password>
      <configuration>
           <StrictHostKeyChecking>ask</StrictHostKeyChecking>
      </configuration>
 </server>

また、StrictHostKeyCheckingを「no」に設定しようとしましたが、セキュリティリスクは別として、特定のマシンでは機能しませんでした。

誰かがすべてのマシンで一貫して内部sshリポジトリを使用する方法を見つけましたか?

4

1 に答える 1

11

Maven SSHワゴンは、OSに関係なく機能するSSHの純粋なJava実装であるJSchを使用します。(この質問が最初に投稿されたときはそうではなかったかもしれませんが、現在はそうです。)プラグインの展開のドキュメントには、外部SSHコマンドでのアーティファクトの展開と呼ばれるガイドがまだありますが、このアプローチはもう必要ありません。

これは、Maven3.0.4を搭載したWindows7システムからLinuxボックスにSCPを介してデプロイするために正常に使用した構成例です。

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
    http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>hello</groupId>
  <artifactId>hello</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>

  <name>Hello</name>

  <build>
    <extensions>
      <extension>
        <groupId>org.apache.maven.wagon</groupId>
        <artifactId>wagon-ssh</artifactId>
        <version>2.3</version>
      </extension>
    </extensions>
  </build>

  <distributionManagement>
    <repository>
      <id>my-ssh-repo</id>
      <url>scp://my.server.url/path/to/ssh-repo</url>
    </repository>
  </distributionManagement>

</project>

settings.xml

<settings>
  <servers>
    <server>
      <id>my-ssh-repo</id>
      <username>myUser</username>
      <password>myPass</password>
    </server>
  </servers>
</settings>
于 2013-01-18T18:10:22.550 に答える