当前位置: 首页 > 面试题库 >

有什么办法可以使Maven scp wagon在linux / mac / windows平台上一致地工作?

陶淳
2023-03-14
问题内容

鉴于有关scp / ssh和maven的文档非常差,我尝试了不同的方法,基本上分为两大类:使用scpexe wagon和scp
wagon。通常,它们都可以在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存储库的方法吗?


问题答案:

在Maven的SSH货车使用JSch,纯Java实现SSH的,其作品无论操作系统。(也许最初发布此问题时可能不是这种情况,但现在是正确的。)Deploy
Plugin
文档仍然具有一个指南,称为外部SSH命令中的工件部署,但是这种方法不再需要。

这是一个示例配置,我已成功使用该配置通过SCP将其从Maven 3.0.4的Windows 7系统通过SCP部署到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>


 类似资料:
  • 问题内容: 有什么办法可以反编译Linux .so? 问题答案: 有反编译器,但是反编译器可能不会以与原始程序所用语言相同的语言发出代码。 也有反汇编程序,可以将机器代码重新汇编为汇编程序。 反编译Wiki 可能是其他信息的良好来源。

  • 我一直在关注快板5平台和他的文件管理器使用的教程!openFile.eof(),我听说它不好,我很确定它是什么让我的矢量下标超出范围错误。除了它,还有什么我可以使用的吗?另外,你能检查一下我的图层类,以防我的矢量下标超出范围错误吗?我想不出来,我很确定它来自文件管理器,但我不知道。 它仅输出地图的第一行。当我把它改成“而”(标准:::getline(打开文件,行))时,我甚至从未去过标准::cou

  • 问题内容: 我已经阅读了Composer 的全局安装文档,但仅适用于* nix系统: 我很高兴在Windows上做同样的事情,这就是我的开发机器的OS。我可以跑步 从存在的任意文件夹中。解释器已处于可变状态。 有什么线索吗? 问题答案: 当然。只需将composer.phar放在类似的位置,然后在称为PATH的某个位置制作一个批处理文件,即可执行以下操作: “%*”重复传递给shell脚本的所有参

  • 我试图制作一个跨平台的JavaFX应用程序,它在Windows和OSX机器上工作得很好,但在Linux上不行。 jar是在Intellij思想中使用基本的JavaFX配置构建的。 有人帮忙吗?

  • 我正在使用Bazel构建一个多平台C++客户端(iOS,OSX,Android,Windows)。 iOS和OSX是在我的Mac上本地构建的(出于必要)。Android和Windows是在Docker容器中构建的。 在构建结束时,我有一个Bazel规则,它接受每个平台的每个规则,并将它们放在中。 这一点,以及下面的Github问题,让我质疑Bazel关于构建的说法。 https://github.

  • 问题内容: Windows具有VirtualAlloc,它允许您保留地址空间的连续区域,但实际上不使用任何物理内存。稍后,当您要使用它(或它的一部分)时,您再次调用VirtualAlloc来提交以前保留的页面的区域。 这实际上确实很有用,但是我最终希望将我的应用程序移植到linux-因此,如果以后无法移植,我就不想使用它。linux有办法吗? 编辑-用例 我正在考虑分配4 GB或类似的虚拟地址空间