【问题标题】:How to build maven project both Snapshot and Release build simultaneously如何同时构建快照和发布构建的maven项目
【发布时间】:2016-10-28 02:01:34
【问题描述】:

我需要同时构建快照版本和发布版本。

为了构建我喜欢的快照版本

<groupId>com.abc.xyz</groupId>
<artifactId>service</artifactId>
<version>1.0.3-SNAPSHOT</version>

<distributionManagement>
    <snapshotRepository>
        <id>mvn-git-repo</id>
        <uniqueVersion>true</uniqueVersion>
        <name>maven git repository</name>
        <url>file:/home/mvn-github-repo/snapshot</url>
    </snapshotRepository>
</distributionManagement>

要构建发布版本,

<groupId>com.abc.xyz</groupId>
<artifactId>service</artifactId>
<version>1.0.3</version>

<distributionManagement>
    <repository>
        <id>mvn-git-repo</id>
        <uniqueVersion>true</uniqueVersion>
        <name>maven git repository</name>
        <url>file:/home/mvn-github-repo/release</url>
    </repository>
</distributionManagement>

是否可以同时制作两者,以便它一次生成快照版本和发布版本 jar 并部署在各自的存储库中。如果可能的话,我应该在 pom 中保留什么版本?

【问题讨论】:

  • 对不起,但这没有意义。您的 lib/app 已发布,因此您构建了一个发布版本,或者您的 lib/app 尚未发布,因此您构建了一个 SNAPSHOT 版本?

标签: java maven


【解决方案1】:

你使用 profile 来定义版本和 repo,像这样

<version>${buildVersion}</version>
.
.
.
<profiles>
    <profile>
        <id>snapshot-repo</id>
        <activation>
            <property>
                <name>snapshot</name>
                <value>true</value>
            </property>
        </activation>
        <properties>
         <buildVersion>1.0.3-SNAPSHOT</buildVersion>
        </properties>
        <distributionManagement>
            <repository>
            </repository>
            <snapshotRepository>
            </snapshotRepository>
        </distributionManagement>
    </profile>

    <profile>
        <id>git-repo</id>
        <activation>
            <property>
                <name>!snapshot</name>
            </property>
        </activation>
        <properties>
          <buildVersion>1.0.3</buildVersion>
        </properties>
        <distributionManagement>
            <repository>

            </repository>
            <snapshotRepository>

            </snapshotRepository>
        </distributionManagement>
    </profile>

然后使用-Dsnapshot=true 构建

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-09
    • 1970-01-01
    • 2018-05-21
    • 2015-07-05
    • 1970-01-01
    相关资源
    最近更新 更多