Ниже представлена структура моего проекта.

Мне нужно скопировать файл из места \ 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 (на ней построен проект).




Определите пути со ссылкой на базовый каталог вашего проекта следующим образом.
<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>
Отлично, жду твоего ответа.
Основываясь на приведенном выше ответе, я нашел правильный способ получить расположение родительского и базового каталогов. Ниже работал у меня.
<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>
Большое спасибо за внимание. На основе вашего ответа у меня возникла идея, как отслеживать родительские каталоги. Мой ответ такой, как показано ниже.