Eclipse и Maven-War-плагин взрываются - PullRequest
0 голосов
/ 18 октября 2018

Я бегу против кирпича с Eclipse.

Я постараюсь объяснить.Я работаю над проектом, который «злоупотребляет» оверлеями maven и имеет много модулей с файлами Javascript и LESS внутри веб-приложения.

Нам удалось настроить maven для взрыва зависимостей в каталоге, где maven-frontend-plugin будет обрабатывать (используя nodejs) генерацию окончательных скомпилированных файлов JS и CSS.

Это отлично работает, когда я использую чистый maven.Однако на Eclipse это не заканчивается для правильной работы.Основная причина в том, что Eclipse simple игнорирует конфигурацию выполнения maven-war-plugin, который взрывает зависимости.Вместо этого он просто выполняет заданный по умолчанию maven-war-plugin: explode.

Мне нужно это исправить, так как это самый большой барьер на пути к созданию современной среды разработки внешнего интерфейса (использование nodejs, npm и gulp для переноса JS иМЕНЬШЕ).

Извлечено из нашего основного файла pom.xml

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-antrun-plugin</artifactId>
    <version>1.8</version>
    <executions>
        <execution>
            <id>make-webapp-compress</id>
            <phase>generate-sources</phase>
            <goals>
                <goal>run</goal>
            </goals>
            <configuration>
                <tasks>
                    <mkdir dir="${project.build.directory}/webapp-exploded" />
                    <mkdir dir="${project.build.directory}/webapp-compress" />
                </tasks>
            </configuration>
        </execution>
    </executions>
</plugin>
<plugin>
    <artifactId>maven-war-plugin</artifactId>
    <executions>
        <execution>
            <id>parent-resources-less</id>
            <phase>generate-sources</phase>
            <goals>
                <goal>exploded</goal>
            </goals>
            <configuration>
                <failOnMissingWebXml>false</failOnMissingWebXml>
                <warSourceExcludes>**/*.ftl,**/*.vm,**/*.xml,WEB-INF/,META-INF/</warSourceExcludes>
                <warSourceIncludes>**/*.css,**/*.less,**/*.js</warSourceIncludes>
                <webappDirectory>${project.build.directory}/webapp-exploded</webappDirectory>
                <webResources>
                    <resource>
                        <directory>src/main/webapp</directory>
                    </resource>
                </webResources>
            </configuration>
        </execution>
    </executions>
</plugin>
<plugin>
    <groupId>org.eclipse.m2e</groupId>
    <artifactId>lifecycle-mapping</artifactId>
    <version>1.0.0</version>
    <configuration>
        <lifecycleMappingMetadata>
            <pluginExecutions>
                <pluginExecution>
                    <pluginExecutionFilter>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-antrun-plugin</artifactId>
                        <versionRange>[1.8,]</versionRange>
                        <goals>
                            <goal>run</goal>
                        </goals>
                    </pluginExecutionFilter>
                    <action>
                        <execute />
                    </action>
                </pluginExecution>
                <pluginExecution>
                    <pluginExecutionFilter>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-war-plugin</artifactId>
                        <versionRange>[3.0.0,]</versionRange>
                        <goals>
                            <goal>exploded</goal>
                        </goals>
                    </pluginExecutionFilter>
                    <action>
                        <execute />
                    </action>
                </pluginExecution>
            </pluginExecutions>
        </lifecycleMappingMetadata>
    </configuration>
</plugin>

1 Ответ

0 голосов
/ 08 ноября 2018

Вы можете попробовать использовать плагин "maven-dependency-plugin".Я использовал это в своем проекте для копирования зависимостей в желаемое конкретное место назначения выводаЯ прилагаю образец конфигурации, обновите его согласно вашему требованию.

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <executions>
                <execution>
                    <id>copy-dependencies</id>
                    <phase>prepare-package</phase>
                    <goals>
                        <goal>copy-dependencies</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>${project.build.directory}/pipeline/lib</outputDirectory>
                        <overWriteReleases>false</overWriteReleases>
                        <overWriteSnapshots>false</overWriteSnapshots>
                        <overWriteIfNewer>true</overWriteIfNewer>
                    </configuration>
                </execution>
            </executions>
        </plugin>
...