gpt4 book ai didi

java - 有没有办法让 maven scp wagon 在 linux/mac/windows 平台上一致工作?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:16:43 28 4
gpt4 key购买 nike

鉴于关于 scp/ssh 和 maven 的文档非常糟糕,我尝试了不同的方法,基本上分为两大类:使用 scpexe wagon 和 scp wagon。通常它们在 linux 和 mac 上都可以正常工作,但在 Windows 上我从来没有找到一种方法可以让它在所有机器上工作。

scpexe 方法(安装完整的 putty 并添加到路径后)- 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 设置为“否”,但是,撇开安全风险不谈,它在特定机器上不起作用。

有人找到一种在所有机器上一致地使用内部 ssh 存储库的方法吗?

最佳答案

存在三种通过 SSH/SCP 部署 Maven Artifact 的潜在方法:

  • wagon-ssh(已弃用)
  • wagon-ssh-external(特定于平台的问题)
  • wagon-ssh 重写构建于 Apache Mina SSHD 之上(在撰写本文时实际上还不存在)

1。旅行车-ssh

Maven SSH wagon使用 JSch,SSH 的纯 Java 实现,它可以在任何操作系统上工作。 (也许最初发布此问题时情况并非如此,但现在确实如此。)

这是一个示例配置,我成功地使用它通过 SCP 将 Windows 7 系统和 Maven 3.0.4 部署到 Linux 机器。

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>

不幸的是,这个 wagon 现在已经被弃用了,原因有两个:它是建立在 JSch 上的,它不是完全开源的,并且由于需要复杂和低级的代码而难以维护。参见 WAGON-616了解详情。

2。 wagon-ssh-外部

Maven SSH External Wagon调出您的系统 SSH/SCP 命令。不幸的是,存在一些特定于操作系统的配置问题,特别是在 Windows 上,如 Deployment of artifacts in an external SSH command 中所述。指南,并在上面的问题中突出显示。

3。 wagon-ssh 使用 Apache Mina SSHD 重写

纯 Java SSH/SCP wagon 的一个可行希望是修改 wagon-ssh 实现以使用 Apache Mina SSHD而不是 JSch。不幸的是,目前还没有人真正做到这一点,但是 wagon-ssh 的维护者表示,如果社区中的任何人站出来解决这个项目,它可能会被取消。

关于java - 有没有办法让 maven scp wagon 在 linux/mac/windows 平台上一致工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5819775/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com