在运行时覆盖maven pom中的设置系统属性

ibps3vxo  于 2023-04-29  发布在  Maven
关注(0)|答案(1)|浏览(167)

我在使用org。eclipse.images.渲染器插件来渲染我的图像从svg到png。Eclipse还提供了创建highDpi图标的支持,这需要向Eclipse传递另外2个参数。svg.scale=2和eclipse.svg.createFragments=false(不创建单独的文件夹)。我想通过我的pom渲染普通图标和高dpi图标,但是给出这两个参数会覆盖我的配置,因此对于两个执行我得到相同类型的图标。有没有办法覆盖Eclipse。svg.scale属性使用1执行一次,使用2执行第二次。附加我的POM以供参考:
在我的POM中,我添加了2个执行项来渲染图标,并使用properties-maven-plugin插件来设置set-system-properties来设置属性。但这些属性同时设置到两个执行中。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>com.provar.tycho</groupId>
    <artifactId>com.provar.tycho.root</artifactId>
    <version>1.230.0</version>
  </parent>

  <groupId>com.provar.images</groupId>
  <artifactId>com.provar.images</artifactId>
  <version>2.260.0.0</version>
  <packaging>eclipse-plugin</packaging>

  <name>Provar Image Library</name>
  <description>Provar image library and conversion tools</description>

  <build>
    <plugins>
      <plugin>
        <groupId>org.eclipse.images</groupId>
        <artifactId>org.eclipse.images.renderer</artifactId>
        <version>1.0.100-SNAPSHOT</version>
        <executions>
          <execution>
            <phase>generate-sources</phase>
            <goals>
              <goal>render-icons</goal>
            </goals>
          </execution>
          <execution>
            <id>highDpi</id>
            <phase>generate-sources</phase>
            <goals>
              <goal>render-icons</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>properties-maven-plugin</artifactId>
        <version>1.0.0</version>
        <executions>
          <execution>
            <!-- any phase before your app deploys -->
            <phase>initialize</phase>
            <goals>
              <goal>set-system-properties</goal>
            </goals>
            <configuration>
              <properties>
                <property>
                  <name>eclipse.svg.sourcedirectory</name>
                  <value>${project.basedir}/svg</value>
                </property>
                <property>
                  <name>eclipse.svg.targetdirectory</name>
                  <value>${images.output.folder}/images</value>
                </property>
                <property>
                    <name>eclipse.svg.scale</name>
                    <value>2</value>
                </property>
                <property>
                    <name>eclipse.svg.createFragments</name>
                    <value>false</value>
                </property>
              </properties>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>

我想用Eclipse。svg.对于一次执行将属性缩放为1,对于第二次执行将属性缩放为2。是否可以通过配置POM本身来完成。请帮帮我

but5z9lq

but5z9lq1#

您可以使用maven“配置文件”来控制特定的执行。
Maven Profiles Documentation
用两个概要文件设置项目,比如svgscale1和svgscale2
然后像这样调用maven构建:

mvn clean install -Psvgscale1
mvn clean install -Psvgscale2

相关问题