Распакуйте файлы из jar, если jar используется, затем скопируйте извлеченные файлы в каталог

У меня есть большое веб-приложение, которое использует много зависимостей Maven. Они включены в виде файлов JAR, но я хочу иметь возможность использовать некоторые из них в качестве открытого проекта непосредственно в Eclipse. Затем зависимые проекты связаны с m2e.

Из некоторых JAR / проектов ресурсы должны быть извлечены.

Как я могу сделать это с Maven-зависимостью-плагином? Если артефакт включен в качестве JAR, распакуйте его, а затем скопируйте файлы в нужный каталог. Если артефакт включен в качестве проекта, он существует на жестком диске, и файлы могут быть напрямую доступны и скопированы, без распаковки.

2 ответа

Решение

Плагин m2e не может ни запускать плагин зависимостей 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>

(Возможно, вам придется изменить фазу или цель для ваших нужд.)

Вы можете запустить "rightclick->Run as-> Maven install" в своем проекте из затмения, чтобы скопировать файлы в нужное место.

В качестве альтернативы для всего этого вы можете использовать фильтр ресурсов в своем веб-приложении, чтобы получать ресурсы непосредственно из jar-файлов во время выполнения, например из Spring Framework.

Загрузите исполняемый файл JD-GUI, запустите его, и он должен распаковать все ваши файлы JAR независимо от того, как они были собраны. Ссылка для скачивания: http://www.softpedia.com/get/Programming/Debuggers-Decompilers-Dissasemblers/?utm_source=spd&utm_campaign=postdl_redir

Другие вопросы по тегам