Есть ли способ увеличить значение свойства Maven pom.xml? - PullRequest
0 голосов
/ 31 октября 2019

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

У меня есть этот файл maven pom.xml, где яиметь значение свойства <ins.i>, которое должно увеличиваться на 1 для каждого работающего экземпляра. Это свойство становится последней цифрой <server.port>. Если бы я смог увеличить это значение на 1, это решило бы мою проблему.

Я искал похожие вопросы и не мог найти ничего похожего.

<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>

  <!-- Please replace 'CXX' below with your C (campus) with A (Alameda) / 
        T (Tagus); and your group number with two digits. Then delete this comment. -->
    <groupId>pt.sayf.CXX</groupId>
    <artifactId>SAYF</artifactId>
    <version>1.0.0-SNAPSHOT</version>
  </parent>

  <artifactId>sentry-server</artifactId>
  <packaging>jar</packaging>
  <name>${project.artifactId}</name>

  <properties>


    <mainclass>pt.sayf.sentry.server.SentryServer</mainclass>

    <!-- instance number -->
    <ins.i>1</ins.i>

    <!--  name and coordinates -->
    <sentry_loc.name>IST_Taguspark</sentry_loc.name>
    <sentry.xcoord>38.737613</sentry.xcoord>
    <sentry.ycoord>-9.303164</sentry.ycoord>

    <server.host>localhost</server.host>
    <server.port>809${ins.i}</server.port>
    <sentry.path>/grpc/sayf/${sentry.name}/${ins.i}</sentry.path>

  </properties>

  <dependencies>
  <!-- contract brings gRPC dependencies with it -->
        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>sentry-contract</artifactId>
            <version>1.0.0-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>depot-contract</artifactId>
            <version>1.0.0-SNAPSHOT</version>
        </dependency>
  </dependencies>

  <build>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
        </resource>
    </resources>
    <testResources>
        <testResource>
            <directory>src/test/resources</directory>
            <filtering>true</filtering>
        </testResource>
    </testResources>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-resources-plugin</artifactId>
            <version>${version.maven-resources-plugin}</version>
            <configuration>
                <nonFilteredFileExtensions>
                    <nonFilteredFileExtension>jks</nonFilteredFileExtension>
                </nonFilteredFileExtensions>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <version>${version.exec-maven-plugin}</version>
            <executions>
                <execution>
                    <goals>
                        <goal>java</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <!-- to prevent deprecation warning: -->
                <killAfter>-1</killAfter>
                <mainClass>${mainclass}</mainClass>
                <arguments>
                    <argument>${zookeeper.url}</argument>
                    <argument>${server.host}</argument>
                    <argument>${server.port}</argument>
                    <argument>${sentry.path}</argument>
                    <argument>${sentry_loc.name}</argument>
                    <argument>${sentry.xcoord}</argument>
                    <argument>${sentry.ycoord}</argument>
                </arguments>
            </configuration>    
        </plugin>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>appassembler-maven-plugin</artifactId>
            <version>${version.appassembler-maven-plugin}</version>
            <executions>
                <execution>
                    <phase>install</phase>
                    <goals>
                        <goal>assemble</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <programs>
                    <program>
                        <mainClass>${mainclass}</mainClass>
                        <id>${project.artifactId}</id>
                    </program>
                </programs>
            </configuration>
        </plugin>
    </plugins>
  </build>
</project>
...