0

子 pom の依存関係のバージョンが親 pom のプロパティとして定義されているプロジェクトで mvn deploy を実行すると、デプロイされたアーティファクトでバージョン番号が展開されません。

この例では、 ${spring.version} は展開されていません。バージョン プロパティを拡張するように maven を作成できますか?

親ポン:

<?xml version="1.0" encoding="UTF-8"?>
<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>

<groupId>TestProject</groupId>
<artifactId>TestProject</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>

<modules>
    <module>test</module>
</modules>

<properties>
    <spring.version>3.2.2.RELEASE</spring.version>
</properties>

<distributionManagement>
    <snapshotRepository>
        <id>dips_snapshot</id>
        <url>http://mavenrepo.dips.local/repository/dips_snapshot</url>
    </snapshotRepository>
</distributionManagement>
</project>

子ポン:

<?xml version="1.0" encoding="UTF-8"?>
<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>

<groupId>TestProject</groupId>
<artifactId>subproject</artifactId>
<version>1.0-SNAPSHOT</version>

<parent>
    <groupId>TestProject</groupId>
    <artifactId>TestProject</artifactId>
    <version>1.0-SNAPSHOT</version>
</parent>

<dependencies>

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-beans</artifactId>
        <version>${spring.version}</version>
    </dependency>
</dependencies>

デプロイされたポン:

<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>
<groupId>TestProject</groupId>
<artifactId>subproject</artifactId>
<version>1.0-SNAPSHOT</version>
<parent>
<groupId>TestProject</groupId>
<artifactId>TestProject</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.version}</version>
</dependency>
</dependencies>
</project>
4

2 に答える 2

1

私は、親子関係と集約が分離されている別のプロジェクト組織を好みます。プレーン プロジェクトをモジュールとして含むアグリゲーター プロジェクトと、アグリゲーター プロジェクトのモジュールでもある親プロジェクトを使用しています。この親プロジェクトは、すべてのプレーン プロジェクトとアグリゲーターの間で共有されます。私の親プロジェクトとプレーン プロジェクトは、アグリゲーター プロジェクト ディレクトリのサブディレクトリに保存され、それに応じrelativePathて各parent要素の が設定されます。

この組織は、アグリゲーター プロジェクト ディレクトリからビルドを実行する限り、問題をより適切に分離し、プロジェクト間の依存関係が正しく処理されるようにします。

于 2013-04-16T15:01:38.520 に答える