Свяжите файл внутри EAR, созданного maven

Ниже представлена ​​структура моего проекта. Свяжите файл внутри EAR, созданного maven

Мне нужно скопировать файл из места \ MainProject \ src \ non-packaged-resources в \ MainProject \ sub-project2 \ sub-project2-web \ src \ main \ resources при создании MainProject. Ниже приведен раздел сборки pom-файла моего подпроекта2-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 (на ней построен проект).

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
64
2

Ответы 2

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

<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>

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

sher17 11.01.2019 07:25

Отлично, жду твоего ответа.

Gayan Mettananda 11.01.2019 07:33

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

<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>

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