2014-09-02 2 views
1

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

Ток ПОМ:

<?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> 

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

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

Спасибо

ответ

1

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

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

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

Для ознакомления с подробной информацией о версиях плагина см. Ссылку ниже. Это хорошо документировано.

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

0

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

Смежные вопросы