maven antrun ssh 或 scp 隐藏输出

2023-12-31

我想使用 ant 在 mvn 中运行来运行 ssh 和 scp 命令。
ssh 和 scp 命令正确运行,并且在下一阶段中声明的插件 - 运行。 但是 ssh/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>group</groupId>
    <artifactId>artifact</artifactId>
    <version>0.0.0-1-SNAPSHOT</version>
    <name>name</name>
    <packaging>jar</packaging>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-antrun-plugin</artifactId>
                <version>1.6</version>
                <executions>
                    <execution>
                        <id>echoKuku</id>
                        <phase>validate</phase>
                        <goals>
                            <goal>run</goal>
                        </goals>
                        <configuration>
                            <target>
                                <sshexec verbose="true" output="o.txt" failonerror="false" host="${Ip}" trust="yes"
                                    username="${UserName}" command="echo kuku" keyfile="${Keyfile}" />
                                <taskdef name="sshexec" classname="org.apache.tools.ant.taskdefs.optional.ssh.SSHExec"
                                    classpathref="maven.plugin.classpath" />
                            </target>
                        </configuration>
                    </execution>
                </executions>
                <dependencies>
                    <dependency>
                        <groupId>commons-net</groupId>
                        <artifactId>commons-net</artifactId>
                        <version>1.4.1</version>
                    </dependency>
                    <dependency>
                        <groupId>ant</groupId>
                        <artifactId>ant-commons-net</artifactId>
                        <version>1.6.5</version>
                    </dependency>
                    <dependency>
                        <groupId>ant</groupId>
                        <artifactId>ant-jsch</artifactId>
                        <version>1.6.5</version>
                    </dependency>
                    <dependency>
                        <groupId>jsch</groupId>
                        <artifactId>jsch</artifactId>
                        <version>0.1.29</version>
                    </dependency>
                </dependencies>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <executions>
                    <execution>
                        <id>download-jsch</id>
                        <phase>compile</phase>
                        <goals>
                            <goal>copy</goal>
                        </goals>
                        <configuration>
                            <overWriteSnapshots>true</overWriteSnapshots>
                            <artifactItems>
                                <artifactItem>
                                    <groupId>jsch</groupId>
                                    <artifactId>jsch</artifactId>
                                    <version>0.1.29</version>
                                    <overWrite>true</overWrite>
                                    <outputDirectory>${project.build.directory}</outputDirectory>
                                </artifactItem>
                            </artifactItems>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

        </plugins>
    </build>
    <properties>
        <javaVersion>1.7</javaVersion>
        <Ip>1.2.3.4</Ip>
        <UserName>root</UserName>
        <Keyfile>${user.home}/.ssh/id_rsa</Keyfile>
    </properties>
    <dependencies>
        <dependency>
            <groupId>jsch</groupId>
            <artifactId>jsch</artifactId>
            <version>0.1.29</version>
        </dependency>
    </dependencies>
</project>

文件 jsch-0.1.29.jar 已在目标目录中创建,但输出为:

C:\Users\azberger\somePath>mvn test
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building name 0.0.0-1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[WARNING] The artifact jsch:jsch:jar:0.1.29 has been relocated to com.jcraft:jsch:jar:0.1.29
[INFO]
[INFO] --- maven-antrun-plugin:1.6:run (echoKuku) @ artifact ---
[INFO] Executing tasks

main:
  [sshexec] Connecting to 1.2.3.4:22
kuku

C:\Users\azberger\somePath>

更新:(16/3/16 8:11 GMT)

scp - 工作正常。
sshexec 与文件脚本 (commandResource="[file]") - 工作正常。
sshexec 使用单个命令 (command="[command]") - 会导致问题,如上所述。


尝试使用较新版本的 JSCH 依赖项(ant-jsch 为 1.8.4,jsch 为 0.1.53,每个都有不同的组 id)。它解决了我这边的问题:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-antrun-plugin</artifactId>
    <executions>
        <execution>
            <id>server-copy</id>
            <goals>
                <goal>run</goal>
            </goals>
            <phase>process-sources</phase>
            <configuration>
                <target>
                    <echo message="Pushing to host..." />
                    <sshexec host="hostname" username="user" trust="true" 
                        password="pass" failonerror="true"  
                        command="mkdir -p /home/user/test/test"/> 
                    <scp trust="yes"
                        file="some-file"
                        todir="user:pass@hostname:/path/to/some-file" 
                        />
                </target>
            </configuration>
        </execution>
    </executions>
    <dependencies>
        <dependency>
            <groupId>org.apache.ant</groupId>
            <artifactId>ant-jsch</artifactId>
            <version>1.8.4</version>
        </dependency>
        <dependency>
            <groupId>com.jcraft</groupId>
            <artifactId>jsch</artifactId>
            <version>0.1.53</version>
        </dependency>
    </dependencies>
</plugin>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

maven antrun ssh 或 scp 隐藏输出 的相关文章

随机推荐

  • 文件附件在 Microsoft Graph API 中显示为消息实体

    最近我们注意到 Microsoft Graph API 已将文件附件作为从 me messages 端点返回的消息实体返回 重现的场景如下 向自己发送一封电子邮件 或让其他人向您发送一封电子邮件 其中包含一个或多个文件附件 在 Graph
  • scrollViewDidEndScrollingAnimation 没有被调用

    我想执行一些操作scrollview完成滚动 所以我把那个 acton 写在scrollViewDidEndScrollingAnimation委托方法 当矩形不可见且滚动视图滚动到新矩形时 它工作正常 但是当 rect 已经可见时scro
  • 使用 GM 禁用页面的焦点检查功能[重复]

    这个问题在这里已经有答案了 当页面认为失去焦点时 我试图阻止页面自行停止 那么如何使用GM禁用网页中的某个功能呢 我会尝试在页面上提供脚本 希望有人可以帮助我更好地解读它 哈哈
  • 地理编码器功能不起作用

    我使用 google api 从纬度和经度获取位置地址 运行良好 但今天突然出现此消息 我已经做好了 geocoder new Geocoder MapNavigation this Locale ENGLISH addresses geo
  • 如何在原则 2 中按日期时间排序?

    我正在寻找执行以下查询 qb this gt getEntityManager gt createQueryBuilder qb gt select e gt from Entity Event e gt setMaxResults lim
  • 汇编 64 位 NASM

    我正在做一个项目 在 64 位 NASM 中 我必须将十进制转换为二进制 然后将二进制转换为十进制 当我调用 printf 时 调试后我不断遇到分段错误 extern printf section bss decsave resd 2 st
  • 为什么这个 setTimeout() 调用可以在控制台中工作,但不能作为 Greasemonkey 脚本工作?

    当我在 Greasemonkey 脚本的 for 循环中使用 setTimeout 时 它似乎根本不起作用 但是 如果我在 Firebug 控制台中运行完全相同的代码 则它可以正常工作 这是代码 UserScript name setTim
  • 将表达式转换为字符串表示形式?

    考虑以下 Haskell 代码 module Expr where Variables are named by strings assumed to be identifiers type Variable String Represen
  • 尝试在前台使用enableForegroundDispatch忽略所有NFC意图

    我试图让我的应用程序在运行时忽略 nfc 命令 它是由带有 Android 应用程序记录 AAR 的 NFC 标签启动的 我不希望它在已经运行时能够通过该标签启动 尝试过小心翼翼地跟随别人examples https stackoverfl
  • 我可以使用 LINQ 更优雅地重写它吗?

    我有一个double 我想将其转换为 CSV 字符串格式 即一行中的每一行 以及用逗号分隔的行元素 我是这样写的 public static string ToCSV double array return String Join Envi
  • Gitlab CI 不执行 npm 脚本

    我尝试制作一个在 gitlab runner 上运行的 CI 脚本 我想要的很简单 首先应执行 npm install 命令来获取所有必需的 npm 包 之后npm test and npm run build应该被执行 The gitbl
  • Laravel 查询生成器:选择除少数字段之外的所有字段

    使用 Laravel 查询构建器 可以轻松选择字段或使用别名字段 gt select 如何选择除少数字段之外的所有字段 例如 我希望永远不归还id我的记录回到前端 http laravel com docs 4 2 eloquent htt
  • GDB 跳过了我的代码!

    所以 我定义了一个类 DataLoggingSystemStateReceiver DataLoggingSystemStateReceiver initializer list stuff other functions here 主要是
  • 我应该将 HTML 存储为 nvarchar(MAX) 还是 ntext?

    我不知道如果我选择 nvarchar MAX 是否有字符数限制 而且我也不确定我需要多少个字符 这里使用的标准数据类型是什么 我正在使用 SQL Server 2008 R2 The ntext类型已被弃用 如下所示text and ima
  • Selenium IDE 找不到元素

    我正在尝试在 Selenium IDE 中运行录制的测试用例 问题是 当我尝试执行整个测试用例时 Selenium 停止它 没有在页面上找到元素 问题是我可以执行测试用例的单个步骤 我认为 Selenium 会在加载新页面之前尝试查找元素
  • 应用 CSS text-shadow 时是否可以将多个元素视为一个文本?

    应用 CSS 时text shadow对于文本内容部分包裹在子元素中的元素 包裹文本后面的字母将在包裹元素上投射阴影 如以下示例所示 font family sans serif font weight 900 shadow color f
  • 如何正确停止定时器?

    var timer time Timer func A timer Stop cancel old timer go B new timer func B timer time NewTimer 100 time Millisecond s
  • 检查 ASP.NET Core Identity 中具有 Authorize 属性的多个策略之一

    我在 ASP NET Core 应用程序中设置了标准身份验证系统 用户 角色 RoleClaims 充当权限 在 Startup cs 中 我为每个角色和每个权限创建一个策略 假设这将使我的视图具有充分的灵活性 能够说我希望此按钮显示用户是
  • 生成的 WSDL 中的空肥皂操作

    我正在尝试使用 JAX WS 从我的 Java 代码生成 WSDL 一切似乎都工作正常 除了我在 WSDL 中的操作时 soapAction 仍然为空 这是我的代码 WebService public class MyClass publi
  • maven antrun ssh 或 scp 隐藏输出

    我想使用 ant 在 mvn 中运行来运行 ssh 和 scp 命令 ssh 和 scp 命令正确运行 并且在下一阶段中声明的插件 运行 但是 ssh scp 之后的所有命令的输出 不会写入任何输出 问题是什么 这是我的 pom xml