2010-03-15 8 views
2

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

+0

Avez-vous vérifié http://stackoverflow.com/questions/2410384/managing-native-libraries-with-maven? –

+1

Je ne veux pas faire de pot et le déballer, est-il possible d'utiliser seulement quelque chose comme CLASSPATH? –

Répondre

4

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).

+0

désolé, je suis novice en maven, mais mon projet a une structure différente. ce que je devrais faire? –

+0

@EK Soit mettre les bibliothèques natives dans le répertoire que vous avez défini comme '' ou ajouter des détails à votre question (comme votre POM et la structure du projet) afin que je puisse fournir plus de conseils. –

+0

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 src test MERCI! –

1

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>