我目前正在开展一个项目,其中包括使用JNotify来监控目录/文件的创建、重命名/修改和删除。该项目是在Java 6中构建的,而不是Java 7。JNotify使用JNI来钩入本机操作系统以监视目录/文件。我的问题是,我需要将JNotify放入我们的仓库中,但我希望它被构建为将java.library.path(DLL)与JNI JAR打包在一起。我该如何在Maven中做到这一点?
我目前正在开展一个项目,其中包括使用JNotify来监控目录/文件的创建、重命名/修改和删除。该项目是在Java 6中构建的,而不是Java 7。JNotify使用JNI来钩入本机操作系统以监视目录/文件。我的问题是,我需要将JNotify放入我们的仓库中,但我希望它被构建为将java.library.path(DLL)与JNI JAR打包在一起。我该如何在Maven中做到这一点?
你可能需要手动将jar包上传到你的Archiva实例中。
仓库格式是固定的,因此您需要在检索到构件后执行重命名操作。这取决于您检索后打算如何使用它。
这是一个常见的模式,类似于这样:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<configuration>
<stripVersion>true</stripVersion>
</configuration>
<executions>
<execution>
<id>copy-jnotify</id>
<configuration>
<includeArtifactIds>JNotify</includeArtifactIds>
<outputDirectory>${project.build.directory}/my-app</outputDirectory>
</configuration>
<goals>
<goal>copy-dependencies</goal>
</goals>
</execution>
</executions>
</plugin>
您可以使用适当的工件列表,将所有工件复制到target/my-app
目录中。