Maven: удаленные файлы (antrun) все еще в финальном файле войны - PullRequest
3 голосов
/ 22 февраля 2010

Я использую плагин antrun для удаления и перемещения некоторых файлов свойств в зависимости от используемого профиля:

<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
    <execution>
        <phase>compile</phase>
        <goals>
            <goal>run</goal>
        </goals>
        <configuration>
            <tasks>
                <delete>
                    <fileset dir="${project.build.outputDirectory}/com/.../props">
                        <exclude name="pm-web-${profile.id}.xml" />
                    </fileset>
                </delete>
                <move file="${project.build.outputDirectory}/com/.../props/pm-web-${profile.id}.xml"
                    tofile="${project.build.outputDirectory}/com/.../props/pm-web.xml" />
            </tasks>
        </configuration>
    </execution>
</executions>

Когда я проверяю папку target / classes, я вижу, что «ненужные» файлы свойств были правильно удалены и что задача перемещения также была правильно выполнена. Однако, когда я смотрю на встроенный файл войны, я вижу, что удаленные файлы все еще там (перемещенный файл в порядке во время войны).

Я не понимаю, как это возможно; Я предполагаю, что плагин войны в основном раздражает целевую папку? Так как файлы были правильно удалены из целевой папки, я ожидаю, что они также не будут на войне.

Чтобы усложнить ситуацию (извините), я заметил, что удаление иногда работает частично, что означает: иногда некоторые папки (не все) были «удалены с войны».

Я пытался изменить цель задания (не повезло), но я предполагаю, что большинство целей все-таки происходит до начала войны.

спасибо за любую помощь,
Стейн

Ответы [ 2 ]

1 голос
/ 22 февраля 2010

War mojo создает веб-приложение в каталоге ${project.build.directory}/${project.build.finalName}, прежде чем создавать архив .war. Может быть, ваши файлы свойств были там до того, как вы добавили antrun. В этом случае удаление файла свойств из target/classes не удаляло их из ${project.build.directory}/${project.build.finalName}, и файлы все равно оказались в финальном .war. Но, может быть, я слишком много догадываюсь и совершенно неправ. Посмотрите, сможете ли вы воспроизвести проблему сейчас, когда вы все очистили.

0 голосов
/ 23 сентября 2016

Попробуйте изменить

<phase>compile</phase>

с

<phase>prepare-package</phase>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...