Есть ли способ определить заполнители в дескрипторе сборки Maven?

Я не эксперт по Maven, поэтому извините, если этот вопрос немного глупый.

Я использую 3 дескриптора в своем pom.xml. В каждом из этих дескрипторов фильтруется файл. Я хотел бы использовать заполнитель для ссылки на идентификатор дескриптора внутри файла.

Например, если это один из моих дескрипторов сборки:

<assembly>
    <id>descriptorNumberTwo</id>
    ...

    <file>
        <source>src/main/assembly/run.sh</source>
        <fileMode>0755</fileMode>
        <lineEnding>unix</lineEnding>
        <filtered>true</filtered>
    </file>
    ...
</assembly>

Я хочу использовать ${placeholder.for.my.id} (или что-то еще) в моем run.sh, чтобы получить «descriptorNumberTwo». Это возможно?

Заранее спасибо!!


person Lucía    schedule 29.04.2015    source источник
comment
Вероятно, вам следует использовать обычную фильтрацию ресурсов, чтобы Maven поместил его под target/something, а затем ссылался на это место в сборке. Лучше собирать из переработанных ресурсов, чем из исходников.   -  person Tome    schedule 29.04.2015
comment
Спасибо за ответ. Все дескрипторы фильтруют один и тот же файл. Итак, я хочу, чтобы мой первый zip имел run.sh с descriptorNumberOne, второй zip с run.sh, говорящим descriptorNumberTwo, и так далее. Поэтому я не думаю, что смогу использовать свойства из pom.xml.   -  person Lucía    schedule 29.04.2015
comment
В таком случае, да, то, что вы описываете, возможно. Но вам может понадобиться использовать определенный файл свойств, как указано здесь: maven.apache.org/plugins/maven-assembly-plugin/examples/single/   -  person Tome    schedule 29.04.2015
comment
Спасибо за помощь! Я до сих пор не понимаю, как я мог это сделать. Можете ли вы как-то выбрать, какой файл свойств вы хотите использовать для каждого дескриптора? В примере файл свойств добавляется в pom, поэтому значения будут одинаковыми для всех дескрипторов, верно? (Извините за мой английский!)   -  person Lucía    schedule 29.04.2015
comment
О, есть, я не знал, что ты можешь это сделать. Это здорово, спасибо Томе! olafsblog.sysbsb.de/   -  person Lucía    schedule 29.04.2015
comment
Да, действительно, если вам нужно 3 разных значения для одного и того же свойства, можно использовать профили. Это означает, что будет создана только одна сборка. Но если вам нужно создать 3 сборки в одной команде Maven, вам лучше использовать несколько исполнений, как описано здесь: stackoverflow.com/questions/8726884/. И для каждого исполнения указывать еще <filter>.   -  person Tome    schedule 30.04.2015