Pergunta

Eu escrevi um plug -in maven para pegar o endereço IP da máquina e gostaria de poder criar uma propriedade para que o endereço IP seja filtrado em um arquivo (via $ {ipaddress}) quando a geração do arquétipo ocorrer.

Não consegui descobrir como fazer isso. Alguém sabe?

Foi útil?

Solução

o Propriedades-maven-plugin lê propriedades de um arquivo e as disponibiliza para uma construção como se tivessem sido definidas em linha.

Você pode ter o seu plug -in que o IP em um arquivo e depois use o plug -in Properties para lê -lo ou prenda o fonte Do plug -in Properties para definir a propriedade em seu próprio plug -in.

Essencialmente, você apenas obtém as propriedades do MavenProject e adiciona sua própria entrada/IES.

Outras dicas

Você pode usar o plugin org.codehaus.groovy.maven para obter IP e defini -lo como adereços. No meu exemplo, eu defini o IP recuperado para o Property Localip e ele está disponível nos próximos estágios como quaisquer outros adereços do Maven, ou seja, como $ {localip}.

                 <plugin>
                    <groupId>org.codehaus.groovy.maven</groupId>
                    <artifactId>gmaven-plugin</artifactId>
                    <version>1.0</version>
                    <executions>
                      <execution>
                        <id>get-local-ip</id>
                        <phase>initialize</phase>
                        <goals>
                          <goal>execute</goal>
                        </goals>
                        <configuration>
                          <classpath>
                            <element>
                              <groupId>commons-lang</groupId>
                              <artifactId>commons-lang</artifactId>
                              <version>2.4</version>
                             </element>
                          </classpath>
                          <source>
                              java.net.InetAddress address=InetAddress.getByName("${env.COMPUTERNAME}");
                              project.properties.localIP=address.getHostAddress();
                          </source>
                        </configuration>
                      </execution>
                    </executions>
                </plugin>

Bem, o problema é: suas propriedades são processadas antes da você executa a construção e não pode ser substituído durante a construção. Pelo menos essa é a minha experiência, eu adoraria ser provada errada e até aceitar pontos negativos para isso :) Então, uma possibilidade - crie um script que executa seu programa, preenche a propriedade do sistema e depois executa mvn build Logo depois (eu sei que é feio)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top