Maven 2 如何让maven从JNA项目下载platform.jar
我有以下POM条目Maven 2 如何让maven从JNA项目下载platform.jar,maven-2,jna,Maven 2,Jna,我有以下POM条目 <dependency> <groupId>net.java.dev.jna</groupId> <artifactId>jna</artifactId> <version>3.3.0</version> </dependency> net.java.dev.jna 您可以看到还有许多其他文件。为什么Maven不下载其他文件 如果打开jna-3.3.0.
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna</artifactId>
<version>3.3.0</version>
</dependency>
net.java.dev.jna
您可以看到还有许多其他文件。为什么Maven不下载其他文件
如果打开jna-3.3.0.pom,您将看到
<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>
org.jvnet.maven-antrun-extended-plugin
maven antrun扩展插件
包裹
跑
我怀疑这个问题与pom中的注释“伪造maven并安装二进制工件”有关。如果在现有JNA依赖项的旁边添加第二个依赖项,并添加分类器,则应该将工件添加到构建中
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna</artifactId>
<version>3.3.0</version>
<classifier>platform</classifier>
</dependency>
我下载了这些文件,并将文件放在项目根目录的lib文件夹中。接缝对我来说很好。如果他们发布新版本,您必须更新it手册
<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>
3.4.0
net.java.dev.jna
jna
${jna.version}
系统
${project.basedir}/lib/jna.jar
net.java.dev.jna
jna
${jna.version}
系统
${project.basedir}/lib/platform.jar
平台
我没有真正理解中的分类器的用法
我在github中搜索了JNA的项目,发现了一个名为的文件,其中包括以下工件详细信息:
<groupId>net.java.dev.jna</groupId>
<artifactId>jna-platform</artifactId>
<version>4.0.0-SNAPSHOT</version>
<packaging>jar</packaging>
net.java.dev.jna
jna平台
4.0.0-SNAPSHOT
罐子
因此,我只是使用以下内容下载jna和jna平台JAR:
<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>
4.0.0
net.java.dev.jna
jna
${jna.version}
net.java.dev.jna
jna平台
${jna.version}
+1对于4.0.0版,artifactId平台
已更改为jna平台
。对于较新的版本来说,这不再是事实,第二个工件现在被称为“jna平台”,没有分类器。
<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>