Maven: скопировать файл из рабочей области в папку, которая находится за пределами цели

Во время сборки мне нужно скопировать 5 properties файлов из рабочей области моего проекта src/main/resources/my в папку C:\my (я разрабатываю на Windows 7). C:\my существует, но пуст.

Я использую следующий код в своем файле pom.xml, но файлы не копируются.

Во время сборки я не получаю никаких ошибок, но я получаю следующий вывод:

[INFO] --- maven-resources-plugin:2.5:copy-resources (copy-my-resources) @ my-webapp ---
[debug] execute contextualize
[WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 5 resources

Обратите внимание, что он не говорит [INFO] Copying 5 resources to somewhere, как это обычно бывает при успешном копировании.

Однако файлы вообще не копируются в C:\my.

Не могли бы вы увидеть, что я должен изменить в моем XML-коде?

Вот соответствующий код:

<plugin>
   <groupId>org.apache.maven.plugins</groupId>
   <artifactId>maven-resources-plugin</artifactId>
    <version>2.5</version>
    <executions>
            <execution>
                    <id>copy-my-resources</id>

                    <phase>process-resources</phase>

                    <goals>
                            <goal>copy-resources</goal>
                    </goals>
                    <configuration>

                            <!-- overwrite! -->
                            <overwrite>true</overwrite>

                            <outputDirectory>${env.HOMEDRIVE}/my</outputDirectory>
                            <resources>
                                    <resource>
                                            <directory>src/main/resources/my</directory>
                                            <filtering>false</filtering>
                                            <includes>
                                                <include>**/*.properties</include>
                                            </includes>
                                    </resource>
                            </resources>
                    </configuration>
            </execution>
    </executions>
</plugin>

person rapt    schedule 04.04.2012    source источник


Ответы (2)


Вы можете использовать команду run mvn -X ..., чтобы получить более подробные выходные данные отладки для всех плагинов.

Также убедитесь, что свойство ${env.HOMEDRIVE} определено и папка ${env.HOMEDRIVE}/my существует.

person Eugene Kuleshov    schedule 04.04.2012

Чтобы избавиться от предупреждения, вы должны определить свойство в своем pom:

<properties>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

Кроме того, добавление чего-то в вашу сборку, например, homedrive и т. д., сделает вашу сборку не переносимой. Лучшим решением было бы создать пакет, такой как .zip, который содержит всю конфигурацию для вашего приложения.

person khmarbaise    schedule 05.04.2012