Как обеспечить разный набор свойств для разных исполнений плагина? - PullRequest
0 голосов
/ 24 сентября 2018

Я использую maven-assembly-plugin для сборки различных артефактов следующим образом:

<build>
    <plugins>
        <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <configuration>
                <appendAssemblyId>false</appendAssemblyId>
                <descriptors>
                    <descriptor>src/main/assembly/assembly.xml</descriptor>
                </descriptors>
            </configuration>
            <executions>
                <execution>
                    <id>configuration-staging</id>
                    <phase>package</phase>
                    <goals>
                        <goal>single</goal>
                    </goals>
                </execution>
                <execution>
                    <id>configuration-production</id>
                    <phase>package</phase>
                    <goals>
                        <goal>single</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

В assembly.xml я включил фильтрацию шаблонов:

<fileSets>
    <fileSet>
        <filtered>true</filtered>

Это прекрасно работает.Например, если я введу ${name} в одном из ресурсов для сборки, он будет заменен именем проекта.Я также мог бы определить свойства в pom.xml, который будет заменен плагином.

Теперь я хотел бы иметь разные свойства для каждого выполнения maven-assembly-plugin.Например, я хотел бы ввести ${url}, который содержит URL-адрес, который будет использоваться в целевой среде (staging и production в приведенном выше примере).

Возможно ли это?Как?

Ответы [ 2 ]

0 голосов
/ 24 сентября 2018

Очевидно, что для каждого выполнения в maven-assembly-plugin можно передать различные свойства следующим образом:

<build>
    <plugins>
        <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <configuration>
                <appendAssemblyId>false</appendAssemblyId>
                <descriptors>
                    <descriptor>src/main/assembly/assembly.xml</descriptor>
                </descriptors>
            </configuration>
            <executions>
                <execution>
                    <id>configuration-staging</id>
                    <phase>package</phase>
                    <goals>
                        <goal>single</goal>
                    </goals>
                    <configuration>
                        <finalName>staging</finalName>
                        <filters>
                            <filter>src/main/assembly/staging.properties</filter>
                        </filters>
                    </configuration>
                </execution>
                <execution>
                    <id>configuration-production</id>
                    <phase>package</phase>
                    <goals>
                        <goal>single</goal>
                    </goals>
                    <configuration>
                        <finalName>production</finalName>
                        <filters>
                            <filter>src/main/assembly/production.properties</filter>
                        </filters>
                    </configuration>
                </execution>
            </executions>
        </plugin>

Хотя это не отвечает на общий вопрос, он отвечает на вопрос специально для maven-assembly-plugin.

Больше информации можно найти на https://maven.apache.org/plugins/maven-assembly-plugin/examples/single/filtering-some-distribution-files.html.

0 голосов
/ 24 сентября 2018

Можно попробовать с плагином свойств Maven

https://www.mojohaus.org/properties-maven-plugin/index.html

, который позволяет читать свойства из файлов или URL-адресов.

...