Я создаю этот проект 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>