Maven,Docker获取主机系统的实际IP地址
我和Maven已经配置了Apache Kafka+ZooKeeper容器:Maven,Docker获取主机系统的实际IP地址,maven,docker,maven-3,docker-maven-plugin,Maven,Docker,Maven 3,Docker Maven Plugin,我和Maven已经配置了Apache Kafka+ZooKeeper容器: <image> <name>wurstmeister/zookeeper:${zookeeper.version}</name> <alias>zookeeper</alias> <run> <ports> <port>${zookeeper.port}:2181
<image>
<name>wurstmeister/zookeeper:${zookeeper.version}</name>
<alias>zookeeper</alias>
<run>
<ports>
<port>${zookeeper.port}:2181</port>
</ports>
</run>
</image>
<image>
<name>wurstmeister/kafka:${kafka.version}</name>
<alias>kafka</alias>
<run>
<ports>
<port>9093:9092</port>
</ports>
<links>
<link>zookeeper:zookeeper</link>
</links>
<env>
<KAFKA_ADVERTISED_HOST_NAME>192.168.1.202</KAFKA_ADVERTISED_HOST_NAME>
<KAFKA_ADVERTISED_PORT>9093</KAFKA_ADVERTISED_PORT>
<KAFKA_ZOOKEEPER_CONNECT>zookeeper:${zookeeper.port}</KAFKA_ZOOKEEPER_CONNECT>
</env>
</run>
</image>
如何将此插件与某个阶段/目标绑定,以便在某个早期初始化阶段自动调用它,而无需每次手动调用build helper:local ip
:
默认情况下绑定到生命周期阶段:流程测试类
您可以将其更改为绑定到您想要的任何阶段,例如
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>local-ip</goal>
</goals>
<phase>initialize</phase>
</execution>
</executions>
</plugin>
org.codehaus.mojo
构建助手maven插件
本地ip
初始化
:
默认情况下绑定到生命周期阶段:流程测试类
您可以将其更改为绑定到您想要的任何阶段,例如
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>local-ip</goal>
</goals>
<phase>initialize</phase>
</execution>
</executions>
</plugin>
org.codehaus.mojo
构建助手maven插件
本地ip
初始化
来自build helper maven插件的本地ip
仅返回127.0.0.1
在我的用例中,网络地址是必需的-类似于192.168.17.112
<plugin>
<groupId>org.codehaus.groovy.maven</groupId>
<artifactId>gmaven-plugin</artifactId>
<executions>
<execution>
<phase>generate-resources</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<source>
java.net.DatagramSocket socket = new java.net.DatagramSocket()
socket.connect(java.net.InetAddress.getByName('google.com'), 80)
project.properties['host.address'] = socket.getLocalAddress().getHostAddress()
</source>
</configuration>
</execution>
</executions>
</plugin>
org.codehaus.groovy.maven
)来自build helper maven插件的本地ip
仅返回127.0.0.1
在我的用例中,网络地址是必需的-类似于192.168.17.112
<plugin>
<groupId>org.codehaus.groovy.maven</groupId>
<artifactId>gmaven-plugin</artifactId>
<executions>
<execution>
<phase>generate-resources</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<source>
java.net.DatagramSocket socket = new java.net.DatagramSocket()
socket.connect(java.net.InetAddress.getByName('google.com'), 80)
project.properties['host.address'] = socket.getLocalAddress().getHostAddress()
</source>
</configuration>
</execution>
</executions>
</plugin>
org.codehaus.groovy.maven
)对于docker compose托管容器,主机的默认网络地址为172.17.0.1感谢您的评论。不幸的是,我的卡夫卡设置无法正常使用此IP地址,只能使用实际的主机IP。有关docker compose托管容器的更多详细信息,请参见以下问题。主机的默认网络地址为172.17.0.1感谢您的评论。不幸的是,我的卡夫卡设置无法正常使用此IP地址,只能使用实际的主机IP。有关更多详细信息,请参见以下问题
<plugin>
<groupId>org.codehaus.groovy.maven</groupId>
<artifactId>gmaven-plugin</artifactId>
<executions>
<execution>
<phase>generate-resources</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<source>
java.net.DatagramSocket socket = new java.net.DatagramSocket()
socket.connect(java.net.InetAddress.getByName('google.com'), 80)
project.properties['host.address'] = socket.getLocalAddress().getHostAddress()
</source>
</configuration>
</execution>
</executions>
</plugin>