我有一个使用许多 Maven 依赖项的大型 webapp。它们作为 JAR 文件包含在内,但我希望有机会直接在 Eclipse 中将其中一些用作打开的项目。然后依赖项目与m2e链接。
从其中一些 JAR/项目中,需要提取资源。
如何使用 Maven-dependency-plugin 做到这一点?如果工件作为 JAR 包含,请将其解压缩,然后将文件复制到所需目录。如果工件作为项目包含,则它存在于硬盘上,并且可以直接访问和复制文件,无需解压缩。
我有一个使用许多 Maven 依赖项的大型 webapp。它们作为 JAR 文件包含在内,但我希望有机会直接在 Eclipse 中将其中一些用作打开的项目。然后依赖项目与m2e链接。
从其中一些 JAR/项目中,需要提取资源。
如何使用 Maven-dependency-plugin 做到这一点?如果工件作为 JAR 包含,请将其解压缩,然后将文件复制到所需目录。如果工件作为项目包含,则它存在于硬盘上,并且可以直接访问和复制文件,无需解压缩。
m2e-plugin 既不能执行 maven 依赖插件,也不能自行复制源代码。
您可以使用 maven 依赖插件从 jar 中提取文件:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>unpack</id>
<phase>prepare-package</phase>
<goals>
<goal>unpack</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>yourSourceGroup</groupId>
<artifactId>yourSourceArtifact</artifactId>
<version>1.0.0</version>
<type>jar</type>
<includes>path/to/Files.whatsoever</includes>
<outputDirectory>${project.build.directory}/your/target/folder</outputDirectory>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
(您可能必须根据需要更改阶段或目标。)
您可以从 Eclipse 内部对您的项目运行“右键单击->运行方式-> Maven 安装”,以将文件复制到您需要它们的位置。
作为所有这些的替代方案,您可以在您的 web 应用程序中使用资源过滤器在运行时直接从 jars 中获取资源,例如从 spring 框架中获取资源。