2017-01-21 2 views
0

Я пытаюсь развернуть упакованную банку на какой-то малиновый pi, подключенный к LAN со статическим ip 192.168.0.101 через maven. Вот важная часть моей pom.xml:Задача SCP не найдена (ant-run through maven)

<dependencies> 
... SNIP ... 
     <!-- SSH & FTP --> 
    <dependency> 
     <groupId>commons-net</groupId> 
     <artifactId>commons-net</artifactId> 
     <version>3.5</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.ant</groupId> 
     <artifactId>ant-commons-net</artifactId> 
     <version>1.10.0</version> 
    </dependency> 
    <dependency> 
     <groupId>com.jcraft</groupId> 
     <artifactId>jsch</artifactId> 
     <version>0.1.54</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.ant</groupId> 
     <artifactId>ant-jsch</artifactId> 
     <version>1.10.0</version> 
    </dependency> 
</dependencies> 

<build> 
    <plugins> 

     <plugin> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-maven-plugin</artifactId> 
     </plugin> 

     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-antrun-plugin</artifactId> 
      <version>1.8</version> 

      <executions> 
       <execution> 
        <id>scp-to-remote</id> 
        <phase>install</phase> 
        <goals> 
         <goal>run</goal> 
        </goals> 
        <configuration> 
         <target> 

          <!-- Upload jar via ftp to /home/pi/server --> 
          <scp localFile="${project.basedir}/target/button-masher-1.0.jar" 
           remoteToFile="${rserver.user}@${rserver.ip}:${rserver.script.server.dir}" verbose="true" 
           password="${rserver.pass}" trust="true"> 
          </scp> 

          <!-- calls deploy script --> 
          <sshexec host="${rserver.ip}" trust="yes" 
            username="${rserver.user}" password="${rserver.pass}" 
            command="sh ${rserver.script.server.startup}" /> 

          <taskdef name="scp" 
            classname="org.apache.tools.ant.taskdefs.optional.ssh.Scp" 
            classpathref="maven.plugin.classpath" /> 

          <taskdef name="sshexec" 
            classname="org.apache.tools.ant.taskdefs.optional.ssh.SSHExec" 
            classpathref="maven.plugin.classpath" /> 

          <taskdef name="ftp" 
            classname="org.apache.tools.ant.taskdefs.optional.net.FTP" 
            classpathref="maven.plugin.classpath" /> 

         </target> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
</build> 

Здесь картина показывает, что на% ANT_HOME%/Библиотека jsch.jar и JSch-подпапке присутствуют (JSch самая последняя версия): ant_home/lib

Всякий раз, когда я бегу Maven установки (-Dmaven.test.skip = истина) Я получаю эту ошибку: error

Но дополнительные банки все муравья/компоненты, которые необходимы присутствуют. IDE я использую IntelliJ IDEA Ultimate. Я использую несвязанную (обычно установленную) версию maven из окон cmd для выполнения команд.

+0

Сначала я бы сказал, что это не Job for Maven, но вы можете это сделать, если вам действительно нравится через [wagon-maven-plugin] (http://www.mojohaus.org/wagon-maven-plugin/usage.html) ... – khmarbaise

ответ

0

Фиксированный путем изменения

maven.plugin.classpath

к

maven.compile.classpath

0

wagon-maven-plugin может быть правильным выбором для таких вещей ...

Вы можете настроить, что в вашем файле пом, как это:

<project> 
    [...] 
    <build> 
    [...] 
    <extensions> 
     <extension> 
     <groupId>org.apache.maven.wagon</groupId> 
     <artifactId>wagon-ssh</artifactId> 
     <version>2.10</version> 
     </extension> 
    </extensions> 

    <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>wagon-maven-plugin</artifactId> 
     <version>1.0</version> 
     <executions> 
     <execution> 
      <id>upload-javadoc</id> 
      <phase>deploy</phase> 
      <goals> 
      <goal>upload</goal> 
      </goals> 
      <configuration> 
      <fromDir>local.dir</fromDir> 
      <includes>*</include> 
      <excludes>pom.xml</excludes> 
      <url>scp://your.remote.host/</url> 
      <toDir>remote.dir</toDir> 
      </configuration> 
      </execution> 
     </executions> 
     </plugin> 
    </build> 
    [...] 
</project> 

Я бы рекомендовал обрабатывать такие вещи через Докер изображение или используя такие вещи, как Ansible для настройки вашей системы.

Улучшение:

Выполнение команды может быть достигнуто с помощью этого:

<project> 
    [...] 
    <build> 
    <extensions> 
     <extension> 
     <groupId>org.apache.maven.wagon</groupId> 
     <artifactId>wagon-webdav</artifactId> 
     <version>2.8</version> 
     </extension> 
    </extensions> 

    <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>wagon-maven-plugin</artifactId> 
     <version>1.0</version> 
     <executions> 
     <execution> 
      <id>execute-test-commands</id> 
      <phase>deploy</phase> 
      <goals> 
      <goal>sshexec</goal> 
      </goals> 
      <configuration> 
      <serverId>atlassian-public</serverId> 
      <url>scp://maven.atlassian.com/public</url> 
      <commands> 
       <command>/usr/share/tomcat/bin/tomcat stop</command> 
       <command>rm -rf /usr/share/tomcat/webapps/ROOT</command> 
       <command>unzip -o /usr/share/tomcat/webapps/myapp.zip -d /usr/share/tomcat/webapps/</command> 
       <command>/usr/share/tomcat/bin/tomcat start</command> 
      </commands> 
      </configuration> 
     </execution> 
     </executions> 
    </plugin> 
    </build> 
    [...] 
</project> 
+0

Docker не работает хорошо для общения с DeviceManager и GPIO-контактами :). Вы также не предоставили мне альтернативу ssh-ing на сервер и запуск некоторых скриптов. –

+0

Похоже, вы не читали документы с помощью wagon-maven-plugin. Я обновляю ответ ... (Кроме того, Docker хорошо работает для малины PI). – khmarbaise

+0

Да, но это не работает с ** GPIO PINS **? Я также попросил ant-run не что-то еще –

Смежные вопросы