如果使用jar,则从jar解压缩文件,然后将提取的文件复制到目录

Xdg*_*Xdg 8 java eclipse maven maven-dependency-plugin

我有一个使用许多Maven依赖项的大型webapp.它们作为JAR文件包含在内,但我希望有机会直接在Eclipse中将它们中的一些用作打开的项目.然后依赖项目与m2e链接.

从一些JAR /项目中,需要提取资源.

我怎么能用Maven-dependency-plugin做到这一点?如果工件包含在JAR中,请将其解压缩,然后将文件复制到所需目录.如果工件包含在工件中,它就存在于硬盘驱动器上,文件可以直接访问和复制,无需解压缩.

Vol*_*ibt 21

m2e-plugin既不能执行maven依赖插件,也不能自己复制源.

您可以使用maven dependency-plugin从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>
Run Code Online (Sandbox Code Playgroud)

(您可能需要根据需要更改阶段或目标.)

您可以在eclipse中运行项目中的"rightclick-> Run as-> Maven install",将文件复制到您需要的位置.

作为所有这些的替代方案,您可以使用webapp中的资源过滤器在运行时直接从jar获取资源,例如从spring框架获取资源.