12
votes

Comment puis-je obtenir Maven pour télécharger la plate-forme.jar à partir du projet de la JNA

J'ai l'entrée POM suivante xxx pré>

lorsque je construis mon projet, il télécharge les fichiers suivants: p>

  • JNA-3.3.0.jar li>
  • JNA-3.3.0.jar.sha1 LI>
  • JNA-3.3.0.POM LI>
  • JNA-3.3.0.jar.sha1 LI> ul>

    Si vous visitez le référentiel à http: //download.java.net/maven/2/net/java/dev/jna/jna/3.3//jna/jna/3.0/ Vous pouvez voir qu'il existe de nombreux autres fichiers. Pourquoi Maven ne télécharge pas ces autres fichiers? P>

    Si vous ouvrez la JNA-3.3.0.Pom, vous voyez P>

    <plugins>
      <!-- fake out maven and install the binary artifact -->
      <plugin>
        <groupId>org.jvnet.maven-antrun-extended-plugin</groupId>
        <artifactId>maven-antrun-extended-plugin</artifactId>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>run</goal>
            </goals>
            <configuration>
              <tasks>
                <!--<ant dir="." target="dist" />-->
                <attachArtifact file="dist/jna.jar" />
                <attachArtifact file="dist/platform.jar" classifier="platform" type="jar" />
                <attachArtifact file="dist/src-mvn.zip" classifier="sources" type="jar"/>
              </tasks>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
    


0 commentaires

3 Réponses :


18
votes

Si vous ajoutez une deuxième dépendance à votre projet parallèlement à la dépendance existante de la JNA, avec un classificateur ajouté, vous devez obtenir l'artefact ajouté à votre construction.

<properties>
    <jna.version>3.3.0</jna.version>
</properties>

<dependencies>
    <dependency>
        <groupId>net.java.dev.jna</groupId>
        <artifactId>jna</artifactId>
        <version>${jna.version}</version>
    </dependency>
    <dependency>
        <groupId>net.java.dev.jna</groupId>
        <artifactId>jna</artifactId>
        <version>${jna.version}</version>
        <classifier>platform</classifier>
    </dependency>
</dependencies>


1 commentaires

Pour les versions plus récentes, ce n'est plus vrai, le deuxième artefact est désormais appelé "plate-forme de la JNA", sans classificateur.



0
votes

J'ai téléchargé les fichiers et placé dans un dossier LIB dans la racine du projet. Coutures pour travailler juste bien pour moi. Vous devez mettre à jour le manuel IT si elles publient une nouvelle version.

<properties>
    <jna.version>3.4.0</jna.version>
</properties>   

<dependencies>
    <dependency>
    <groupId>net.java.dev.jna</groupId>
    <artifactId>jna</artifactId>
    <version>${jna.version}</version>
    <scope>system</scope>
    <systemPath>${project.basedir}/lib/jna.jar</systemPath>
</dependency>
<dependency>
    <groupId>net.java.dev.jna</groupId>
    <artifactId>jna</artifactId>
    <version>${jna.version}</version>
    <scope>system</scope>
    <systemPath>${project.basedir}/lib/platform.jar</systemPath>
    <classifier>platform</classifier>
</dependency>
</dependencies>


0 commentaires

7
votes

Je n'ai pas vraiment compris le classificateur code> code> Utilisation dans @ Réponse de Steve_Barham .

J'ai cherché le projet de JNA à GitHub et a trouvé un fichier appelé pom-jna-plateforme.xml code> , qui comprend les détails d'artefact suivants: p> xxx pré>

donc je suis simplement utilisé ce qui suit pour télécharger JNA et JARS-Plateforme JNA: P>

<properties>
    <jna.version>4.0.0</jna.version>
</properties>

<dependencies>
    <dependency>
        <groupId>net.java.dev.jna</groupId>
        <artifactId>jna</artifactId>
        <version>${jna.version}</version>
    </dependency>
    <dependency>
        <groupId>net.java.dev.jna</groupId>
        <artifactId>jna-platform</artifactId>
        <version>${jna.version}</version>
    </dependency>
</dependencies>


1 commentaires

+1 L'artifactide plate-forme a changé en JNA-Platform pour la version 4.0.0. Juste quelque chose pour que les gens soient au courant.