`

利用maven2为工程的jar文件内部打入版本信息

阅读更多
1.修改pom.xml文件,在project节点下加入以下代码:

  <build>
    <resources>
      <resource>
        <directory>src/main/resources</directory>
        <filtering>true</filtering>
      </resource>
    </resources>
  </build>

 
其中路径main/resources用来存放设置生成版本信息的资源文件application.properties,其内容如下:

# application.properties
application.name=${pom.name}
application.version=${pom.version}

其中 : ${pom.name}代表你在pom.xml中配置的工程名,而${pom.version}是你工程的当前版本号。
 
 
 
2.在命令行执行:mvn process-resources,运行结果如下:

[INFO] Scanning for projects...
[INFO] -------------------------------------------------------------------------
---
[INFO] Building my-app
[INFO]    task-segment: [process-resources]
[INFO] -------------------------------------------------------------------------
---
[INFO] [resources:resources]
[INFO] Using default encoding to copy filtered resources.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1 second
[INFO] Finished at: Sun Apr 15 13:28:54 CST 2007
[INFO] Final Memory: 2M/4M
[INFO] ------------------------------------------------------------------------

 
说明命令已经执行成功,现在切换到D:\mywork\my-app\target\classes路径下,你可以发现资源文件application.properties,用文本编辑工具将其打开,内容如下:

# application.properties
application.name=my-app
application.version=1.0-SNAPSHOT

 
 
这时,我们在pom.xml中配置的工程名称及版本信息已经成功生成了。
 
3.运行mvn package ,application.properties将会被打入到jar文件中。
 
4.为application.properties定义扩展信息,maven2提供两种有效的途径定义属性文件的扩展信息
 
方法一:
 
 第一步: 在我们新加入的build节点中增加代码如下:

    <filters>
      <filter>src/main/filters/filter.properties</filter>
    </filters>

也就是说,你除了在这里添加这段代码外,还需要在相应的路径中增加一个filters文件夹,并在其下增加一个filter.properties属性文件。
 
第二步:设置 filter.properties 文件

# filter.properties
my.filter.value=hello!

 
第三步:扩充message=${my.filter.value}到application.properties文件中。
第四步: 再次执行:mvn process-resources,application.properties文件中的内容如下:

# application.properties
application.name=my-app
application.version=1.0-SNAPSHOT
message=hello!

 
此时可以看到message=hello!已经被加入到了配置文件中。
 
 
方法二:不使用filter.properties配置文件,直接在pom.xml的project节点中进行定义,其代码如下:

  <properties>
    <my.filter.value>hello</my.filter.value>
  </properties>

此时不再需要filter.properties。运行命令mvn process-resources,你将得到同样的结果。
 
 
说明: 这两种方法需要根据工程的具体情况来决定,如果工程配置相对复杂,则第一种方式不失为一种很好的解决方案,我们可以利用第一种方式对工程配置进行分类管理。如果工程相对较小,pom.xml中的配置信息也相对较少的情况下建议采用直接写入到pom.xml中的方式。
 
 
另外,利用maven2,我们还可以在配置文件中得到我们的系统信息,在 application.properties 中添加以下代码:

java.version=${java.version}
command.line.prop=${command.line.prop}

 
 
执行命令:
mvn process-resources "-Dcommand.line.prop=hello again"
 
打开生成后的  文件,你将会发现其中多出来了两条信息,一条是我们获得的执行环境信息,另一条则是由我们在执行命令时,即时写入的信息。

java.version=1.5.0_06
command.line.prop=hello again

 
 
 
 
 
                                     ----------------伏羲狂徒
分享到:
评论

相关推荐

    Springboot 打Jar包,Maven完美解决本地Jar包自动打入Springboot Jar包中

    ### Springboot 打Jar包,Maven完美解决本地Jar包自动打入Springboot Jar包中 #### 背景介绍 随着微服务架构的流行,Spring Boot 成为了开发微服务应用时首选的技术栈之一。它简化了传统的Java Web应用程序的开发...

    Maven引入本地Jar包并打包进War包中的方法

    在pom.xml文件中,我们需要配置依赖本地Jar包的信息。对于每个Jar包,我们需要指定groupId、artifactId、version三个属性,同时还要包含scope和systemPath属性。scope属性指定了Jar包的来源于本地文件,而systemPath...

    安装本地jar包至maven本地仓库bat脚本

    2) 进入jar文件所在目录,右键该目录空白处选择“在此处打开命令窗口” 3) 输入maven命令,列表出本目录(不对子目录进行处理)所有的jar文件 4) 输入对应的序号来选择文件 5) 确认您选择的文件,因大意选错时可按r...

    springboot+maven打包demo【将依赖与配置文件打包到jar包外部】

    2. **配置文件打包到外部**:Spring Boot提供了一个`spring-boot-maven-plugin`,它的`repackage`目标可以用来重新打包应用,将配置文件移出jar包。使用`excludeDevTools`和`includeConfig`属性,我们可以将配置文件...

    maven完全手册

    Maven依赖的jar库分为本地仓库(默认在用户主目录的`.m2\repository`下)和远程仓库(如Maven中央仓库、公司内部仓库等)。`settings.xml`文件用于配置仓库的相关信息。 **10. Maven的多模块项目** 对于大型项目,...

    maven打包成第三方jar包且把pom依赖包打入进来的方法

    以上就是使用Maven打包成第三方JAR包且把pom依赖包打入的方法。通过这个方法打包的JAR包具有很高的可用性,开发者不需要手动处理复杂的依赖关系,只需简单地将JAR包部署到目标环境即可运行。希望本文内容能帮助到你...

    maven项目引用外部jar包的方法

    2. 执行Maven安装命令,指定jar文件的路径、groupId、artifactId以及版本号等信息: ```shell mvn install:install-file -Dfile=cloud.jar -DgroupId=...

    如何在IDEA Maven项目中导入本地jar包的步骤

    比如,假设你有一个名为`test.jar`的jar包,位于`F:\`目录下,你想将其设置为`test`组ID下的`test`模块,版本号为`0.0.1`,且是jar格式,那么命令应该是: ``` mvn install:install-file -Dfile=F:\test.jar -...

    Maven将带有第三方依赖的可执行程序打包示例

    maven-assembly-plugin 插件打第三方依赖包进 jar,spring 有 org.springframework.beans.factory.parsing.BeanDefinitionParsingException 异常怎么办? maven-shade-plugin 插件打第三方依赖包,spring 有 java....

    IDEA对使用了第三方依赖jar包的非Maven项目打jar包的问题(图文详解)

    IDEA对使用了第三方依赖jar包的非Maven项目打jar包的问题 本文主要介绍了IDEA对使用了第三方依赖jar包的非Maven项目打jar包的问题,通过详细的图文详解,帮助大家更好地理解和解决这个问题。 知识点1:IDEA打jar包...

    springboot用maven打包1

    在Spring Boot项目中,使用Maven进行打包是一个常见的任务,特别是在构建可执行的JAR文件时。本篇文章将深入探讨如何使用Maven的maven-jar-plugin和maven-dependency-plugin插件来创建一个可以直接运行的Spring Boot...

    json所需要导入jar包

    在Java项目中,引入这些jar包通常是通过Maven或Gradle这样的构建工具完成的。在项目的pom.xml或build.gradle文件中添加对应的依赖,然后构建系统会自动下载并管理这些jar包。如果手动导入,需要将jar文件复制到项目...

    实现Springboot整合UReport2

    console.jar是ureport2的web包,它的代码需要引入核心包ureport2-core.jar,所以使用你的方式肯定缺少ureport2-core.jar里的代码, 你只需要将jar包正确导入maven本地仓库,源码包不需要修改pom.xml文件 2、打包注意...

    gradle将多模块打包成一个jar执行类demo

    标题中的“gradle将多模块打包成一个jar执行类demo”指的是使用Gradle构建工具将一个包含多个子模块的项目打包成一个可执行的JAR文件。在Java开发中,多模块项目通常是为了实现模块化设计,提高代码的可复用性和可...

    Maven引入外部jar的几种方法(小结)

    方式3:将外部jar打入本地Maven仓库 在Maven中,我们还可以将外部的jar包打入本地Maven仓库。例如,我们可以使用以下命令将外部的cloud.jar包打入本地Maven仓库: ``` mvn install:install-file -Dfile=cloud.jar -...

    idea打包java程序(包含依赖的所有jar包)

    在JAR包信息中,需要指定JAR文件的名称、版本号和主类(包含Main方法的类)。同时,也需要配置依赖的第三方类库的地址。在配置依赖Jar的路径时,需要特别注意,在指定的jar文件之前增加“library\”或“library/”,...

    Maven传递依赖和依赖的规则.docx

    例如,HelloWrold2分别依赖包含不同版本commons-fileupload.jar的HelloWorld和HelloWorld3,最终会选择最先声明的HelloWorld3的版本。 总结来说,Maven的依赖管理和传递依赖机制旨在简化项目构建,自动解决依赖关系...

    java小游戏智力拼图jar包

    将这些资源打入.jar文件的过程是Java开发中的一个重要步骤,涉及到构建工具(如Maven或Gradle)的配置。开发者通常会利用这些工具的资源配置,确保在打包时自动将资源文件包含进.jar包。 具体来说,图片和声音的...

    spring boot 第三方jar包抽离方案

    这样,排除的jar包不会被打入可执行jar包。 #### 2.3 打包脚本编写 抽离过程分为四个步骤: 1. **抽取公共jar包库**:将所有工程共用的第三方jar包收集到一个目录下。 2. **输出项目所有依赖**:使用`mvn ...

Global site tag (gtag.js) - Google Analytics