Actualmente estoy intentando construir mi proyecto con maven y sqlite4java. Que está disponible en los repositorios oficiales de maven. El sqlite4java page on google code oficial tiene una configuración de ejemplo, pero está un poco desactualizado y no se ajusta a mis necesidades. Quiero tener un solo archivo .jar al final que pueda implementar en otro lugar. El problema aquí es la dependencia del objeto compartido. Estoy utilizando el objetivo oficial de construcción de su página para copiar el modo a la build.dir/lib pero mis montaje accidentes objetivo con: malIncluyendo el objeto compartido en el ensamblaje de maven
[INFO] Failed to create assembly: Error adding file-set for 'com.almworks.sqlite4java:libsqlite4java-linux-i386:so:0.282' to archive: Error adding archived file-set. PlexusIoResourceCollection not found for: /home/lhw/.m2/repository/com/almworks/sqlite4java/libsqlite4java-linux-i386/0.282/libsqlite4java-linux-i386-0.282.so
No such archiver: 'so'.
¿Qué estoy haciendo? Aquí está mi actual pom.xml despojado de algunas dependencias no relacionado con este tema
<?xml version="1.0"?>
<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>
<groupId>de.ring0.lhw</groupId>
<artifactId>system</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>com.almworks.sqlite4java</groupId>
<artifactId>sqlite4java</artifactId>
<version>${sqlite4java.version}</version>
</dependency>
<dependency>
<groupId>com.almworks.sqlite4java</groupId>
<artifactId>libsqlite4java-linux-i386</artifactId>
<version>${sqlite4java.version}</version>
<type>so</type>
</dependency>
</dependencies>
<properties>
<sqlite4java.version>0.282</sqlite4java.version>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy</id>
<phase>compile</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>com.almworks.sqlite4java</groupId>
<artifactId>libsqlite4java-linux-i386</artifactId>
<version>${sqlite4java.version}</version>
<type>so</type>
<overWrite>true</overWrite>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.5.1</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12.2</version>
<configuration>
<skipTests>true</skipTests>
<systemProperties>
<property>
<name>sqlite4java.library.path</name>
<value>${project.build.directory}/lib</value>
</property>
</systemProperties>
</configuration>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<archive>
<manifest>
<mainClass>de.ring0.lhw.Init</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
-rw-rw-r-- 1 lhw lhw 716k Ago 30 de 12:23 .m2/repositorio/com/almworks/sqlite4java/libsqlite4java-linux-i386/0,282/libsqlite4java-linux-i386-0.282.so Sí, el archivo existe y se copia a target/lib cuando se ejecuta el objetivo de compilación. – lhw
¿Cómo instaló/implementó el 'así' para el repositorio? mvn clean install: install-file? ¿Tiene un pom para esta dependencia instalada? En caso afirmativo, ¿configuró el tipo y el paquete de la dependencia a 'tan'? Puede intentar instalarlo con mvn clean install: install-file -Dpackaging = so –
libsqlite4java-linux-i386 Es la dependencia del objeto compartido que es de tipo para que pueda ver abvoe. Se descarga automáticamente al repositorio local. sqlite4java está disponible en los repositorios maven estándar si quieres probarlo tú mismo. – lhw