cómo hacer referencia a la versión del artefacto de dependencyManagement en maven pom

Tengo el siguiente maven pom.xml

<?xml version="1.0"?>
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.abc.def.ghi</groupId>
<artifactId>core-with-releases</artifactId>
<version>1</version>
<properties>
<yum-repo>/var/www/html/core-repo</yum-repo>
</properties>
<organization>
<name>ABC DEF GHI</name>
</organization>
<dependencyManagement>
<dependencies>
  <dependency>
    <groupId>com.aaa.bbb.ccc.ddd</groupId>
    <artifactId>core</artifactId>
    <version>1.1.3</version>
    <type>rpm</type>
  </dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
   <plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>exec-maven-plugin</artifactId>
    <version>1.2.1</version>
    <executions>
      <execution>
        <id>create-directory</id>
        <phase>process-resources</phase>
        <goals>
          <goal>exec</goal>
        </goals>
        <configuration>
          <executable>mkdir</executable>
          <arguments>
            <argument>${yum-repo}${dependencies["com.aaa.bbb.ccc.ddd:core"].version}</argument>
          </arguments>
        </configuration>
      </execution>
    </executions>
  </plugin>
 </plugins>
 </build>
 </project>

Ejecuto desde la línea de comando

mvn procesos limpios-recursos

Como resultado, quiero que se cree un directorio con el nombre que termina con la versión del artefacto del elemento dependencyManagement que es 1.1.3

¿Alguien puede ayudar con eso? Gracias.

preguntado el 02 de mayo de 12 a las 19:05

1 Respuestas

Recomendaría usar propiedades para tales fines:

<properties>
  <yum-repo>/var/www/html/core-repo</yum-repo>
  <dep.groupId>com.aaa.bbb.ccc.ddd</dep.groupId>
  <dep.artifactId>core</dep.artifactId>
  <dep.version>1.1.3</dep.version>
</properties>
<organization>
<name>ABC DEF GHI</name>
</organization>
<dependencyManagement>
<dependencies>
  <dependency>
    <groupId>${dep.groupId}</groupId>
    <artifactId>${dep.artifactId}</artifactId>
    <version>${dep.version}</version>
    <type>rpm</type>
  </dependency>
</dependencies>
  ...
        <configuration>
          <executable>mkdir</executable>
          <arguments>
            <argument>${yum-repo}${dep.version}</argument>
          </arguments>
        </configuration>
      </execution>
    </executions>
  ...

Debe tenerlo en cuenta al definir una dependencia en gestión de dependencias la dependencia será no vincularse como dependencia a su proyecto actual.

contestado el 03 de mayo de 12 a las 09:05

Estoy de acuerdo con esta solución. Cabe señalar que si estamos hablando de un proyecto Spring Boot, Spring Boot proporciona una forma de inyectar un bean con propiedades del archivo POM. - dablick

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.