Свяжите файл внутри EAR - PullRequest
       40

Свяжите файл внутри EAR

0 голосов
/ 10 января 2019

Ниже приведена структура моего проекта. enter image description here

Мне требуется скопировать файл из папки \ MainProject \ src \ non-packaged-resources в папку \ MainProject \ sub-project2 \ sub-project2-web \ src \ main \ resources при создании MainProject. Ниже приведен раздел сборки файла pom моего sub-project2-web, но файл не копируется во время сборки.

    <build>
    <finalName>sub-project2-web</finalName>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <configuration>
                <warSourceExcludes>**/.copyarea.db</warSourceExcludes>
                <packagingExcludes>**/.copyarea.db</packagingExcludes>
            </configuration>
        </plugin>
        <plugin>
            <artifactId>maven-resources-plugin</artifactId>
            <version>2.5</version>
            <executions>
                <execution>
                    <id>copy-resources</id>
                    <!-- here the phase you need -->
                    <phase>validate</phase>
                    <goals>
                        <goal>copy-resources</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>/src/main/resources</outputDirectory>
                        <resources>
                            <resource>
                                <directory>/src/non-packaged-resources</directory>
                                <filtering>true</filtering>
                            </resource>
                        </resources>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

При просмотре журнала сборки он пропускает копируемый файл со следующей ошибкой

skip non existing resourceDirectory

Но сборка maven становится успешной. Цель состоит в том, чтобы привязать файл, который существует внутри \ MainProject \ src \ non-packaged-resources, ко всем ушам (sub-project1.ear, sub-project2.ear) при создании проекта maven. Сначала я пытаюсь проверить это только в sub-project2-web. Пожалуйста, посоветуйте, как обеспечить правильные пути на основе этого требования. Я использую версию maven 2.2.1 (проект построен на этом.)

Ответы [ 2 ]

0 голосов
/ 11 января 2019

На основании приведенного выше ответа я нашел правильный способ получения местоположения родительского и базового каталогов. Ниже работал для меня.

<build>
<finalName>sub-project2-web</finalName>
<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <configuration>
            <warSourceExcludes>**/.copyarea.db</warSourceExcludes>
            <packagingExcludes>**/.copyarea.db</packagingExcludes>
        </configuration>
    </plugin>
    <plugin>
        <artifactId>maven-resources-plugin</artifactId>
        <version>2.5</version>
        <executions>
            <execution>
                <id>copy-resources</id>
                <!-- here the phase you need -->
                <phase>validate</phase>
                <goals>
                    <goal>copy-resources</goal>
                </goals>
                <configuration>                         
                    <outputDirectory>${project.basedir}/src/main/resources</outputDirectory>
                    <resources>
                        <resource>                      
                            <directory>${project.parent.parent.basedir}/src/non-packaged-resources</directory>
                            <filtering>true</filtering>
                        </resource>
                    </resources>
                </configuration>
            </execution>
        </executions>
    </plugin>
</plugins>

0 голосов
/ 10 января 2019

Определите пути со ссылкой на базовый каталог вашего проекта следующим образом.

<outputDirectory>${project.basedir}/sub-project2/sub-project2-web/src/main/resources</outputDirectory>

<directory>${project.basedir}/src/non-packaged-resources</directory>

Затем добавьте его в файл pom.xml в maven-resources-plugin.

<plugin>
    <artifactId>maven-resources-plugin</artifactId>
    <version>2.5</version>
    <executions>
        <execution>
            <id>copy-resources</id>
            <!-- here the phase you need -->
            <phase>validate</phase>
            <goals>
                <goal>copy-resources</goal>
            </goals>
            <configuration>
                <outputDirectory>${project.basedir}/sub-project2/sub-project2-web/src/main/resources</outputDirectory>
                <resources>
                    <resource>
                        <directory>${project.basedir}/src/non-packaged-resources</directory>
                        <filtering>true</filtering>
                    </resource>
                </resources>
            </configuration>
        </execution>
    </executions>
</plugin>
...