如何使用maven来执行shell脚本(How to execute the shell scrip

2019-09-27 18:11发布

我的情况:我已经部署了一定的测试文件到服务器,我想运行使用maven远程服务器上的shell脚本。 没有Maven插件为CURENT语言,因此我做这种方式。 shell脚本将运行测试,并生成一个.txt格式的输出。

我的问题:我已经使用Maven的蚂蚁运行插件成功运行该脚本,但它不显示行家输出。 它执行脚本后,输出的时候运行Maven不显示后任何事情。 所以在这种情况下,使用maven-ANT-运行并不理想。 这是我的pom.xml的一部分:

<plugin>
            <!-- Step to copy the unit tests to designated destination -->
            <artifactId>maven-antrun-plugin</artifactId>
            <version>1.8</version>
            <executions>
                <execution>
                    <id>Deploy Unit tests onto Server</id>
                    <phase>process-test-resources</phase>
                    <goals>
                        <goal>run</goal>
                    </goals>
                    <configuration>
                        <target>
                            <!-- Copy files to the remote integration test server -->
                            <!-- Transferring unit tests -->
                            <scp failonerror="true" todir="${scp.user}:${scp.password}@${scp.host}:/${scp.dirCopyToUnit}" trust="true">
                                <fileset dir="${scp.UnitTest.api.dir}">
                                    <include name="*"></include>
                                </fileset>
                            </scp>
                            <!-- transferring resources files -->
                            <scp failonerror="true" todir="${scp.user}:${scp.password}@${scp.host}:/${scp.dirCopyToUnitResources}" trust="true">
                                <fileset dir="${scp.UnitTest.api.dirResources}">
                                    <include name="*"></include>
                                </fileset>
                            </scp>
                            <!-- transferring spec_helper.lua -->
                            <scp failonerror="true" todir="${scp.user}:${scp.password}@${scp.host}:/${scp.dirCopySpec_Helpers}" trust="true">
                                <fileset dir="${scp.UnitTest.api.dirSpec_Helpers}">
                                    <include name="*"></include>
                                </fileset>
                            </scp>
                            <sshexec command="sh /tmp/unitTestMaven.sh exit exit" host="${scp.host}" password="${scp.password}" trust="yes" username="${scp.user}"></sshexec>
                            <taskdef classname="org.apache.tools.ant.taskdefs.optional.ssh.SSHExec" classpathref="maven.plugin.classpath" name="sshexec"></taskdef>
                        </target>
                    </configuration>
                </execution>
            </executions>
            <dependencies>
                <dependency>
                    <groupId>com.jcraft</groupId>
                    <artifactId>jsch</artifactId>
                    <version>0.1.53</version>
                </dependency>
                <dependency>
                    <groupId>org.apache.ant</groupId>
                    <artifactId>ant-jsch</artifactId>
                    <version>1.8.4</version>
                </dependency>
            </dependencies>
        </plugin>

有人可以提供一些线索这光?

可能的资源: 行家antrun ssh或scp隐藏输出

我已经使用了旅行车的插件也试过:

 <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>wagon-maven-plugin</artifactId>
            <version>1.0</version>
            <executions>
                <execution>
                    <id>execute-test-commands</id>
                    <phase>test</phase>
                    <goals>
                        <goal>sshexec</goal>
                    </goals>
                    <configuration>
                        <serverId>atlassian-public</serverId>
                        <url>"scp://${scp.user}:${scp.password}@${scp.host}"</url>
                        <commands>
                            <command>sh /tmp/unitTestMaven.sh</command>
                        </commands>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>

但得到以下错误: org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.codehaus.mojo:wagon-maven-plugin:1.0:sshexec (execute-test-commands) on project aa: Unable to create a Wagon instance

文章来源: How to execute the shell scripts using maven
标签: java shell maven