iterator-maven-plugin
iterator-maven-plugin copied to clipboard
Usage in Maven Antrun Plugin
I've got several computers and I want to execute certain commands for each of them:
- Stop pasada service.
- Copy through SCP the new version of asada into the computer.
- Start pasada service.
To do so, I'm using maven-antrun-plugin, which looks like the following code:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>scp-to-remote</id>
<phase>package</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<sshexec trust="true" failonerror="true"
host="asa2071.dyndns.org"
username="pi"
password="mypass"
command="sudo systemctl stop pasada"
timeout="120000" />
<scp
localFile="${project.basedir}/target/pasada-2.0.0.RELEASE.jar"
remoteToFile="[email protected]:/home/pi/asada/pasada/pasada.jar" verbose="true"
password="mypass" trust="true">
</scp>
<sshexec trust="true" failonerror="true"
host="asa2071.dyndns.org"
username="pi"
password="mypass"
command="sudo systemctl start pasada"
timeout="120000" />
</target>
</configuration>
</execution>
</executions>
<!-- libraries for scp impl -->
<!-- antrun doesn't use os's scp -->
<dependencies>
<dependency>
<groupId>com.jcraft</groupId>
<artifactId>jsch</artifactId>
<version>0.1.53</version>
</dependency>
<dependency>
<groupId>ant</groupId>
<artifactId>ant-jsch</artifactId>
<version>1.6.5</version>
</dependency>
</dependencies>
</plugin>
The previous code is working well when invoking mvn package.
I've found your plugin and I'd like to integrate maven-antrun-plugin with it. So far, I've written the following code:
<plugin>
<groupId>com.soebes.maven.plugins</groupId>
<artifactId>iterator-maven-plugin</artifactId>
<version>0.5.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>iterator</goal>
</goals>
<configuration>
<content>2071,2076</content>
<pluginExecutors>
<pluginExecutor>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>scp-to-remote</id>
<phase>package</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<sshexec trust="true" failonerror="true"
host="asa@[email protected]"
username="pi"
password="mypass"
command="sudo systemctl stop pasada"
timeout="120000" />
<scp
localFile="${project.basedir}/target/pasada-2.0.0.RELEASE.jar"
remoteToFile="pi@asa@[email protected]:/home/pi/asada/pasada/pasada.jar" verbose="true"
password="mypass" trust="true">
</scp>
<sshexec trust="true" failonerror="true"
host="asa@[email protected]"
username="pi"
password="mypass"
command="sudo systemctl start pasada"
timeout="120000" />
</target>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>com.jcraft</groupId>
<artifactId>jsch</artifactId>
<version>0.1.53</version>
</dependency>
<dependency>
<groupId>ant</groupId>
<artifactId>ant-jsch</artifactId>
<version>1.6.5</version>
</dependency>
</dependencies>
</plugin>
</pluginExecutor>
</pluginExecutors>
</configuration>
</execution>
</executions>
</plugin>
However, when running mvn package I get the following message:
[INFO] Scanning for projects...
[INFO]
[INFO] ----------------< com.ingartek.efimat:canbus-receiver >-----------------
[INFO] Building canbus-receiver 2.0.0.RELEASE
[INFO] --------------------------------[ jar ]---------------------------------
[WARNING] The POM for net.sourceforge.jFuzzyLogic:jFuzzyLogic:jar:2.0.7 is missing, no dependency information available
[INFO]
[INFO] --- maven-resources-plugin:3.1.0:resources (default-resources) @ canbus-receiver ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 16 resources
[INFO] Copying 4 resources
[INFO]
[INFO] --- maven-compiler-plugin:3.8.0:compile (default-compile) @ canbus-receiver ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 61 source files to D:\workspaces\workspace-efimat\canbus-receiver\target\classes
[INFO]
[INFO] --- maven-resources-plugin:3.1.0:testResources (default-testResources) @ canbus-receiver ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory D:\workspaces\workspace-efimat\canbus-receiver\src\test\resources
[INFO]
[INFO] --- maven-compiler-plugin:3.8.0:testCompile (default-testCompile) @ canbus-receiver ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-surefire-plugin:2.22.1:test (default-test) @ canbus-receiver ---
[INFO]
[INFO] -------------------------------------------------------
[INFO] T E S T S
[INFO] -------------------------------------------------------
[INFO] Running com.ingartek.efimat.canbus_receiver.AppTest
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.057 s - in com.ingartek.efimat.canbus_receiver.AppTest
[INFO]
[INFO] Results:
[INFO]
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
[INFO]
[INFO]
[INFO] --- maven-jar-plugin:3.1.1:jar (default-jar) @ canbus-receiver ---
[INFO] Building jar: D:\workspaces\workspace-efimat\canbus-receiver\target\canbus-receiver-2.0.0.RELEASE.jar
[INFO]
[INFO] --- spring-boot-maven-plugin:2.1.3.RELEASE:repackage (repackage) @ canbus-receiver ---
[INFO] Replacing main artifact with repackaged archive
[INFO]
[INFO] --- iterator-maven-plugin:0.5.1:iterator (default) @ canbus-receiver ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 10.382 s
[INFO] Finished at: 2019-03-12T15:59:29+01:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal com.soebes.maven.plugins:iterator-maven-plugin:0.5.1:iterator (default) on project canbus-receiver: Unable to parse configuration of mojo com.soebes.maven.plugins:iterator-maven-plugin:0.5.1:iterator for parameter target: Cannot find 'target' in class java.lang.Object -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginConfigurationException
I don't understand the error message.
Would it be possible to make it work?
Thank you so much.
PS: let me know whether you need the whole pom.xml.