J'utilise maven dans mon projet java, et je ne comprends pas comment ajouter des bibliothèques natives. Dans mon projet non-maven, je l'ai fait via CLASSPATH. J'utilise NetBeans et maven dans mon projet Java actuel.Maven et bibliothèques natives
Répondre
Si vous souhaitez simplement ajouter les bibliothèques natives au chemin de classe, essayez de les placer dans src/main/resources
.
Mise à jour: Vous pouvez spécifier où resources existe dans le POM:
<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">
<build>
...
<resources>
<resource>
<filtering>false</filtering>
<directory>${basedir}/src/main/native</directory>
<includes>
<include>native.so</include>
</includes>
</resource>
</resources>
<testResources>
...
</testResources>
...
</build>
</project>
Mais honnêtement, si vous décidez d'utiliser Maven, vous devriez adopter standard layout de Maven (ou vous devrez configurer tous les plug-in pour votre mise en page personnalisée qui est plus une source de problèmes que de bénéfices).
désolé, je suis novice en maven, mais mon projet a une structure différente. ce que je devrais faire? –
@EK Soit mettre les bibliothèques natives dans le répertoire que vous avez défini comme '
ma structure de projet très simple. un seul dossier/src/(et test, bin, config, target, lib). ce que je devrais changer dans pom, à dit maven utiliser le dossier de ressources avec des bibliothèques. cela fait partie la plus intéressante de ma pom, je pense
vous pouvez définir votre lib native comme cette façon
<dependency>
<groupId>com.***.</groupId>
<artifactId>abc.jar</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${basedir}/src/main/webapp/WEB-INF/lib/abc.jar</systemPath>
</dependency>
Avez-vous vérifié http://stackoverflow.com/questions/2410384/managing-native-libraries-with-maven? –
Je ne veux pas faire de pot et le déballer, est-il possible d'utiliser seulement quelque chose comme CLASSPATH? –