行家 $project.version.prefix

Posted

技术标签:

【中文标题】行家 $project.version.prefix【英文标题】:maven $project.version.prefix行家 $project.version.prefix 【发布时间】:2019-06-18 10:27:26 【问题描述】:

我们有一个多模块 java 项目,其中每个模块都有 pom.xml。我看到我们在 pom.xml 中有 $project.version ,它基本上获取了项目版本。有没有像 $project.version.prefix 这样的东西也会得到项目版本减去 SNAPSHOT?

【问题讨论】:

【参考方案1】:

Maven 中没有任何固有的东西可以用于此,但您可以配置 build-helper-maven-plugin 来设置一个属性,您可以在其中解析数据。

【讨论】:

【参考方案2】:

使用 build-helper-maven-plugin(通过 build helper plugin not parsing project version)

maven-antrun-plugin 仅用于显示结果

 <plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>build-helper-maven-plugin</artifactId>
    <version>1.7</version>
    <executions>
      <execution>
        <phase>validate</phase>
        <id>parse-version</id>
        <goals>
          <goal>parse-version</goal>
        </goals>
        <configuration>
          <propertyPrefix>parsedVersion</propertyPrefix>
        </configuration>
      </execution>
    </executions>
  </plugin>
        <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-antrun-plugin</artifactId>
    <version>1.1</version>
    <executions>
      <execution>
        <phase>validate</phase>
        <goals>
          <goal>run</goal>
        </goals>
        <configuration>
          <tasks>
            <echo>Major: $parsedVersion.majorVersion</echo>
            <echo>Minor: $parsedVersion.minorVersion</echo>
            <echo>Incremental: $parsedVersion.incrementalVersion</echo>
            <echo>Qualifier: $parsedVersion.qualifier</echo>
            <echo>BuildNumber: $parsedVersion.buildNumber</echo>
            <echo>Project version: $project.version</echo>
            <echo>No qualifier: $parsedVersion.majorVersion.$parsedVersion.minorVersion.$parsedVersion.incrementalVersion</echo>
          </tasks>
        </configuration>
      </execution>
    </executions>
  </plugin>

输出:

 [INFO] --- maven-antrun-plugin:1.1:run (default) @ XXX ---
 [INFO] Executing tasks
 [echo] Major: 1
 [echo] Minor: 2
 [echo] Incremental: 0
 [echo] Qualifier: SNAPSHOT
 [echo] BuildNumber: 0
 [echo] Project version: 1.2.0-SNAPSHOT
 [echo] No qualifier: 1.2.0

【讨论】:

以上是关于行家 $project.version.prefix的主要内容,如果未能解决你的问题,请参考以下文章

银行家算法

银行家算法

c语言银行家算法安全性判别

关于银行家算法中部分代码不理解,请高手帮忙指点下谢谢!!!

C语言实现的操作系统银行家算法

基于C语言的银行家算法