Maven - использование версии в зависимости

1

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

Текущий pom:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<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>
    <artifactId>abc-pom</artifactId>
    <groupId>com.abc</groupId>
    <version>4.480.0-SNAPSHOT</version>
    <relativePath>../../pom.xml</relativePath>
  </parent>

  <groupId>com.abc.libs</groupId>
  <artifactId>dynamixSession</artifactId>
  <packaging>jar</packaging>
  <name>dynamixSession</name>

    .....
    .....

<dependency>
    <groupId>com.pqr.someOtherProject</groupId>
    <artifactId>SomeCoreProcessing</artifactId>
    <version>4.2.14.2-SNAPSHOT</version>
    <!--      <version>${project.version}</version>-->
    <scope>provided</scope>
</dependency>

Этот пот работает. Так как я здесь номер версии hardcoding, нужно ли обновлять этот pom каждый раз, когда изменяется версия? Или он будет обновляться автоматически. Но я сомневаюсь, что он обновляется автоматически. Я хотел бы использовать '$ {project.version}', так что мне не нужно его обновлять. Но если я использую "$ project.version", он пытается искать "com.pqr.someOtherProject.SomeCoreProcessing: 4.480.0-SNAPSHOT", который не существует.

Есть ли способ обойти это, или я застрял с харкодированием версии в моем пом?

благодаря

Теги:
maven
dependencies

2 ответа

1
Лучший ответ

Для этого вы можете использовать плагин версий. Это было бы самым простым способом. Плагины специально используются для такого рода требований.

Но он не будет автоматически обновляться. Вам нужно будет выполнить версии: use-latest-snapshots.

Если вы используете инструмент непрерывной интеграции (например, Jenkins), вы можете автоматизировать его с помощью ночных сборок или каким-либо другим способом.

Просто взгляните на ссылку ниже, чтобы увидеть все детали плагинов версий. Это хорошо документировано.

http://mojo.codehaus.org/versions-maven-plugin/

0

Почему бы вам не попробовать {env.SomeCoreProcessing_version}? Просто убедитесь, что вы устанавливаете/экспортируете переменную SomeCoreProcessing_version перед началом работы с вашей сборкой.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню