You are viewing a plain text version of this content. The canonical link for it is here.
Posted to npanday-dev@incubator.apache.org by "christofer.dutz@c-ware.de" <ch...@c-ware.de> on 2012/03/02 09:39:41 UTC
exe archiver for Maven assembly plugin?
Hi,
I am currently trying to setup a Maven build consisting of a mixed configuration (I am using 1.5-incubator-SNAPSHOT):
1. Java Library (jar packaging)
2. Windows Executable (winexe packaging)
The release should be a jar containing the Java library with an embedded exe (So I can load the binary from within my Java code)
When using the Maven assembly plugin, all I get is this:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-assembly-plugin:2.2.1:single (make-assembly) on project lib-psexec-assembly: Failed to create assembly: Error adding file-set for 'de.cware.utils:lib-psexec-service:winexe:1.0.0-SNAPSHOT' to archive: Error adding archived file-set. PlexusIoResourceCollection not found for: C:\Maven-Repository\de\cware\utils\lib-psexec-service\1.0.0-SNAPSHOT\lib-psexec-service-1.0.0-SNAPSHOT.exe: No such archiver: 'exe'. -> [Help 1]
So it seems there is no archiver available to handle exe resources.
So my question now is:
How do I configure the assembly to do this or is the such an assembler simply missing from NPanday and one should be implemented.
I would volunteer implementing one, if this would be the way to go, I just don't want to implement something that isn't needed.
Chris
[ C h r i s t o f e r D u t z ]
C-Ware IT-Service
Inhaber
Dipl. Inf. Christofer Dutz
Karlstraße. 104, 64285 Darmstadt
fon: 0 61 51 / 27315 - 61
fax: 0 61 51 / 27315 - 64
mobil: 0171 / 7 444 2 33
email: christofer.dutz@c-ware.de<ma...@c-ware.de>
http://www.c-ware.de<http://www.c-ware.de/>
UStId-Nr. DE195700962
AW: exe archiver for Maven assembly plugin?
Posted by "christofer.dutz@c-ware.de" <ch...@c-ware.de>.
Ok ... so as the patch is allways removed, here it comes inline
Index: plugins/maven-exe-archiver-plugin/pom.xml
===================================================================
--- plugins/maven-exe-archiver-plugin/pom.xml (revision 0)
+++ plugins/maven-exe-archiver-plugin/pom.xml (working copy)
@@ -0,0 +1,27 @@
+<?xml version="1.0"?>
+<project
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
+ xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.apache.npanday.plugins</groupId>
+ <artifactId>maven-dotnet-plugins</artifactId>
+ <version>1.5.0-incubating-SNAPSHOT</version>
+ </parent>
+
+ <groupId>org.apache.npanday.plugins</groupId>
+ <artifactId>maven-exe-archiver-plugin</artifactId>
+ <version>1.5.0-incubating-SNAPSHOT</version>
+
+ <name>NPanday :: Archiver :: 'Exe' Archiver Plugin</name>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-archiver</artifactId>
+ <version>1.1</version>
+ </dependency>
+ </dependencies>
+</project>
\ No newline at end of file
Index: plugins/maven-exe-archiver-plugin/src/main/java/npanday/plugin/archiver/PlexusIoExeResourceCollection.java
===================================================================
--- plugins/maven-exe-archiver-plugin/src/main/java/npanday/plugin/archiver/PlexusIoExeResourceCollection.java (revision 0)
+++ plugins/maven-exe-archiver-plugin/src/main/java/npanday/plugin/archiver/PlexusIoExeResourceCollection.java (working copy)
@@ -0,0 +1,37 @@
+package npanday.plugin.archiver;
+
+import org.codehaus.plexus.components.io.resources.PlexusIoCompressedFileResourceCollection;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+
+/**
+ * Created with IntelliJ IDEA.
+ * User: cdutz
+ * Date: 02.03.12
+ * Time: 12:04
+ */
+public class PlexusIoExeResourceCollection extends PlexusIoCompressedFileResourceCollection {
+
+ @Override
+ protected String getDefaultExtension() {
+ return ".exe";
+ }
+
+ @Override
+ protected InputStream getInputStream(File file) throws IOException {
+ // Simply return an InputStream to the resource file.
+ // This will make it embed the source as a whole.
+ return new FileInputStream(file);
+ }
+
+ @Override
+ public String getPath() {
+ // Without overriding this, the exe would be included with its full path.
+ // This way it is included directly in the root of the result archive.
+ return super.getFile().getName();
+ }
+
+}
\ No newline at end of file
Index: plugins/maven-exe-archiver-plugin/src/main/resources/META-INF/plexus/components.xml
===================================================================
--- plugins/maven-exe-archiver-plugin/src/main/resources/META-INF/plexus/components.xml (revision 0)
+++ plugins/maven-exe-archiver-plugin/src/main/resources/META-INF/plexus/components.xml (working copy)
@@ -0,0 +1,10 @@
+<component-set>
+ <components>
+ <component>
+ <role>org.codehaus.plexus.components.io.resources.PlexusIoResourceCollection</role>
+ <role-hint>exe</role-hint>
+ <implementation>npanday.plugin.archiver.PlexusIoExeResourceCollection</implementation>
+ <instantiation-strategy>per-lookup</instantiation-strategy>
+ </component>
+ </components>
+</component-set>
\ No newline at end of file
Index: plugins/pom.xml
===================================================================
--- plugins/pom.xml (revision 1295495)
+++ plugins/pom.xml (working copy)
@@ -58,6 +58,7 @@
<module>netplugins/NPanday.Plugin.SysRef/javabinding</module>
<module>netplugins/NPanday.Plugin.Msbuild/javabinding</module>
<module>silverlight-maven-plugin</module>
+ <module>maven-exe-archiver-plugin</module>
</modules>
<dependencies>
<dependency>
Chris
-----Ursprüngliche Nachricht-----
Von: christofer.dutz@c-ware.de [mailto:christofer.dutz@c-ware.de]
Gesendet: Freitag, 2. März 2012 13:24
An: npanday-dev@incubator.apache.org
Betreff: AW: exe archiver for Maven assembly plugin?
Here goes again ...
-----Ursprüngliche Nachricht-----
Von: christofer.dutz@c-ware.de [mailto:christofer.dutz@c-ware.de]
Gesendet: Freitag, 2. März 2012 13:01
An: npanday-dev@incubator.apache.org
Betreff: AW: exe archiver for Maven assembly plugin?
Hi,
Ok ... so I couldn't find anything in the NPanday Source, so I figgured out a solution on my own.
I applies the patch to NPanday to this mail. With this module I am able to create maven assemblies containing executables.
Here comes an example pom using this plugin (don't know if plugin is really the right name for it):
<?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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>de.cware.utils</groupId>
<artifactId>lib-psexec</artifactId>
<version>1.0.0-SNAPSHOT</version>
</parent>
<groupId>de.cware.utils</groupId>
<artifactId>lib-psexec-client</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>de.cware.utils</groupId>
<artifactId>lib-psexec-service</artifactId>
<version>1.0.0-SNAPSHOT</version>
<type>winexe</type>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.2</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2.1</version>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<dependencies>
<dependency>
<groupId>org.apache.npanday.plugins</groupId>
<artifactId>maven-exe-archiver-plugin</artifactId>
<version>${npanday.version}</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
</project>
The result is a Jar file containing all the classes of lib-psexec-client as well as the binary of lib-psexec-service embedded inside it. So it solved the problems I was having. I haven't done intense testing though as I simply wanted to embed exe files in my jars and this does the trick ;-)
Chris
-----Ursprüngliche Nachricht-----
Von: christofer.dutz@c-ware.de [mailto:christofer.dutz@c-ware.de]
Gesendet: Freitag, 2. März 2012 10:40
An: npanday-dev@incubator.apache.org
Betreff: exe archiver for Maven assembly plugin?
Hi,
I am currently trying to setup a Maven build consisting of a mixed configuration (I am using 1.5-incubator-SNAPSHOT):
1. Java Library (jar packaging)
2. Windows Executable (winexe packaging)
The release should be a jar containing the Java library with an embedded exe (So I can load the binary from within my Java code)
When using the Maven assembly plugin, all I get is this:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-assembly-plugin:2.2.1:single (make-assembly) on project lib-psexec-assembly: Failed to create assembly: Error adding file-set for 'de.cware.utils:lib-psexec-service:winexe:1.0.0-SNAPSHOT' to archive: Error adding archived file-set. PlexusIoResourceCollection not found for: C:\Maven-Repository\de\cware\utils\lib-psexec-service\1.0.0-SNAPSHOT\lib-psexec-service-1.0.0-SNAPSHOT.exe: No such archiver: 'exe'. -> [Help 1] So it seems there is no archiver available to handle exe resources.
So my question now is:
How do I configure the assembly to do this or is the such an assembler simply missing from NPanday and one should be implemented.
I would volunteer implementing one, if this would be the way to go, I just don't want to implement something that isn't needed.
Chris
[ C h r i s t o f e r D u t z ]
C-Ware IT-Service
Inhaber
Dipl. Inf. Christofer Dutz
Karlstraße. 104, 64285 Darmstadt
fon: 0 61 51 / 27315 - 61
fax: 0 61 51 / 27315 - 64
mobil: 0171 / 7 444 2 33
email: christofer.dutz@c-ware.de<ma...@c-ware.de>
http://www.c-ware.de<http://www.c-ware.de/>
UStId-Nr. DE195700962
AW: exe archiver for Maven assembly plugin?
Posted by "christofer.dutz@c-ware.de" <ch...@c-ware.de>.
Here goes again ...
-----Ursprüngliche Nachricht-----
Von: christofer.dutz@c-ware.de [mailto:christofer.dutz@c-ware.de]
Gesendet: Freitag, 2. März 2012 13:01
An: npanday-dev@incubator.apache.org
Betreff: AW: exe archiver for Maven assembly plugin?
Hi,
Ok ... so I couldn't find anything in the NPanday Source, so I figgured out a solution on my own.
I applies the patch to NPanday to this mail. With this module I am able to create maven assemblies containing executables.
Here comes an example pom using this plugin (don't know if plugin is really the right name for it):
<?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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>de.cware.utils</groupId>
<artifactId>lib-psexec</artifactId>
<version>1.0.0-SNAPSHOT</version>
</parent>
<groupId>de.cware.utils</groupId>
<artifactId>lib-psexec-client</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>de.cware.utils</groupId>
<artifactId>lib-psexec-service</artifactId>
<version>1.0.0-SNAPSHOT</version>
<type>winexe</type>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.2</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2.1</version>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<dependencies>
<dependency>
<groupId>org.apache.npanday.plugins</groupId>
<artifactId>maven-exe-archiver-plugin</artifactId>
<version>${npanday.version}</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
</project>
The result is a Jar file containing all the classes of lib-psexec-client as well as the binary of lib-psexec-service embedded inside it. So it solved the problems I was having. I haven't done intense testing though as I simply wanted to embed exe files in my jars and this does the trick ;-)
Chris
-----Ursprüngliche Nachricht-----
Von: christofer.dutz@c-ware.de [mailto:christofer.dutz@c-ware.de]
Gesendet: Freitag, 2. März 2012 10:40
An: npanday-dev@incubator.apache.org
Betreff: exe archiver for Maven assembly plugin?
Hi,
I am currently trying to setup a Maven build consisting of a mixed configuration (I am using 1.5-incubator-SNAPSHOT):
1. Java Library (jar packaging)
2. Windows Executable (winexe packaging)
The release should be a jar containing the Java library with an embedded exe (So I can load the binary from within my Java code)
When using the Maven assembly plugin, all I get is this:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-assembly-plugin:2.2.1:single (make-assembly) on project lib-psexec-assembly: Failed to create assembly: Error adding file-set for 'de.cware.utils:lib-psexec-service:winexe:1.0.0-SNAPSHOT' to archive: Error adding archived file-set. PlexusIoResourceCollection not found for: C:\Maven-Repository\de\cware\utils\lib-psexec-service\1.0.0-SNAPSHOT\lib-psexec-service-1.0.0-SNAPSHOT.exe: No such archiver: 'exe'. -> [Help 1] So it seems there is no archiver available to handle exe resources.
So my question now is:
How do I configure the assembly to do this or is the such an assembler simply missing from NPanday and one should be implemented.
I would volunteer implementing one, if this would be the way to go, I just don't want to implement something that isn't needed.
Chris
[ C h r i s t o f e r D u t z ]
C-Ware IT-Service
Inhaber
Dipl. Inf. Christofer Dutz
Karlstraße. 104, 64285 Darmstadt
fon: 0 61 51 / 27315 - 61
fax: 0 61 51 / 27315 - 64
mobil: 0171 / 7 444 2 33
email: christofer.dutz@c-ware.de<ma...@c-ware.de>
http://www.c-ware.de<http://www.c-ware.de/>
UStId-Nr. DE195700962
AW: exe archiver for Maven assembly plugin?
Posted by "christofer.dutz@c-ware.de" <ch...@c-ware.de>.
Hi,
Ok ... so I couldn't find anything in the NPanday Source, so I figgured out a solution on my own.
I applies the patch to NPanday to this mail. With this module I am able to create maven assemblies containing executables.
Here comes an example pom using this plugin (don't know if plugin is really the right name for it):
<?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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>de.cware.utils</groupId>
<artifactId>lib-psexec</artifactId>
<version>1.0.0-SNAPSHOT</version>
</parent>
<groupId>de.cware.utils</groupId>
<artifactId>lib-psexec-client</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>de.cware.utils</groupId>
<artifactId>lib-psexec-service</artifactId>
<version>1.0.0-SNAPSHOT</version>
<type>winexe</type>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.2</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2.1</version>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<dependencies>
<dependency>
<groupId>org.apache.npanday.plugins</groupId>
<artifactId>maven-exe-archiver-plugin</artifactId>
<version>${npanday.version}</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
</project>
The result is a Jar file containing all the classes of lib-psexec-client as well as the binary of lib-psexec-service embedded inside it. So it solved the problems I was having. I haven't done intense testing though as I simply wanted to embed exe files in my jars and this does the trick ;-)
Chris
-----Ursprüngliche Nachricht-----
Von: christofer.dutz@c-ware.de [mailto:christofer.dutz@c-ware.de]
Gesendet: Freitag, 2. März 2012 10:40
An: npanday-dev@incubator.apache.org
Betreff: exe archiver for Maven assembly plugin?
Hi,
I am currently trying to setup a Maven build consisting of a mixed configuration (I am using 1.5-incubator-SNAPSHOT):
1. Java Library (jar packaging)
2. Windows Executable (winexe packaging)
The release should be a jar containing the Java library with an embedded exe (So I can load the binary from within my Java code)
When using the Maven assembly plugin, all I get is this:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-assembly-plugin:2.2.1:single (make-assembly) on project lib-psexec-assembly: Failed to create assembly: Error adding file-set for 'de.cware.utils:lib-psexec-service:winexe:1.0.0-SNAPSHOT' to archive: Error adding archived file-set. PlexusIoResourceCollection not found for: C:\Maven-Repository\de\cware\utils\lib-psexec-service\1.0.0-SNAPSHOT\lib-psexec-service-1.0.0-SNAPSHOT.exe: No such archiver: 'exe'. -> [Help 1] So it seems there is no archiver available to handle exe resources.
So my question now is:
How do I configure the assembly to do this or is the such an assembler simply missing from NPanday and one should be implemented.
I would volunteer implementing one, if this would be the way to go, I just don't want to implement something that isn't needed.
Chris
[ C h r i s t o f e r D u t z ]
C-Ware IT-Service
Inhaber
Dipl. Inf. Christofer Dutz
Karlstraße. 104, 64285 Darmstadt
fon: 0 61 51 / 27315 - 61
fax: 0 61 51 / 27315 - 64
mobil: 0171 / 7 444 2 33
email: christofer.dutz@c-ware.de<ma...@c-ware.de>
http://www.c-ware.de<http://www.c-ware.de/>
UStId-Nr. DE195700962
Re: exe archiver for Maven assembly plugin?
Posted by Lars Corneliussen <me...@lcorneliussen.de>.
Hallo Christopher,
seems like you find out things …
Can't really grasp what you are trying to do.
_
Lars
- auch deutsch :-) -
Am 02.03.2012 um 10:39 schrieb christofer.dutz@c-ware.de:
> Hi,
>
> I am currently trying to setup a Maven build consisting of a mixed configuration (I am using 1.5-incubator-SNAPSHOT):
>
> 1. Java Library (jar packaging)
>
> 2. Windows Executable (winexe packaging)
> The release should be a jar containing the Java library with an embedded exe (So I can load the binary from within my Java code)
>
> When using the Maven assembly plugin, all I get is this:
> [ERROR] Failed to execute goal org.apache.maven.plugins:maven-assembly-plugin:2.2.1:single (make-assembly) on project lib-psexec-assembly: Failed to create assembly: Error adding file-set for 'de.cware.utils:lib-psexec-service:winexe:1.0.0-SNAPSHOT' to archive: Error adding archived file-set. PlexusIoResourceCollection not found for: C:\Maven-Repository\de\cware\utils\lib-psexec-service\1.0.0-SNAPSHOT\lib-psexec-service-1.0.0-SNAPSHOT.exe: No such archiver: 'exe'. -> [Help 1]
> So it seems there is no archiver available to handle exe resources.
>
> So my question now is:
> How do I configure the assembly to do this or is the such an assembler simply missing from NPanday and one should be implemented.
>
> I would volunteer implementing one, if this would be the way to go, I just don't want to implement something that isn't needed.
>
> Chris
>
>
> [ C h r i s t o f e r D u t z ]
>
> C-Ware IT-Service
> Inhaber
> Dipl. Inf. Christofer Dutz
> Karlstraße. 104, 64285 Darmstadt
>
> fon: 0 61 51 / 27315 - 61
> fax: 0 61 51 / 27315 - 64
> mobil: 0171 / 7 444 2 33
> email: christofer.dutz@c-ware.de<ma...@c-ware.de>
> http://www.c-ware.de<http://www.c-ware.de/>
>
> UStId-Nr. DE195700962
>