maven实战总结,工作中常见操作 下

简介: maven实战总结,工作中常见操作 下

属性

通过 properties 元素用户可以自定义一个或者多个 Maven 属性,然后在 pom 其他的地方使用 ${属性名} 的方式引用该属性,这种方式最大意义在于消除重复。

一、内置属性

${basedir} 表示项目根目录,即包含 pom.xml 文件的目录

${version} 等同于 或者{pom.version} 表示项目版本

二、POM 属性

所有 pom 中的元素都可以用 project. 例如 ${project.artifactId} 对应了 < project>元素的值。常用的 POM 属性包括:

${project.build.sourceDirectory} : 项目的主源码目录,默认为 src/main/java/.

${project.build.testSourceDirectory} : 项目的测试源码目录,默认为 /src/test/java/.

${project.build.directory} : 项目构建输出目录,默认为 target/.

${project.build.outputDirectory} : 项目主代码编译输出目录,默认为 target/classes/.

${project.build.testOutputDirectory} : 项目测试代码编译输出目录,默认为 target/testclasses/.

${project.groupId}: 项目的 groupId.

${project.artifactId} : 项目的 artifactId.

${project.version} : 项目的 version, 等同于 ${version}

${project.build.finalName} : 项目打包输出文件的名称,默认为 ${project.artifactId}${project.version}

三、自定义属性

在 pom 中元素下自定义的 Maven 属性

<properties>
    <swagger.version>2.2.2</swagger.version>
</properties>
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>${swagger.version}</version>
</dependency>

四、Settings 属性

所有用的的 settings.xml 中的设定都可以通过 settings。前缀进行引用与 POM 属性同理。

如 ${settings.localRepository} 指向用户本地仓库的地址

五、Java 系统属性

所有 Java 系统属性都可以使用 Maven 属性引用,例如 ${user.home} 指向了用户目录。

可以通过命令行 mvn help:system 查看所有的 Java 系统属性

六、环境变量属性

所有环境变量都可以使用以 env. 开头的 Maven 属性引用。例如 ${env.JAVA_HOME} 指代了 JAVA_HOME 环境变量的值。

也可以通过命令行 mvn help:system 查看所有环境变量。

七、父级工程属性

上级工程的 pom 中的变量用前缀 引用。上级工程的版本也可以这样引用{parent.version}

Profile

profile 特性可以让我们定义多个 profile,然后每个 profile 对应不同的激活条件和配置信息,从而达到不同环境使用不同配置信息的效果。

profile 可以在以下几个地方声明:

m.xml:这里声明的 profile 只对当前项目有效

用户 settings.xml:.m2/settings.xml 中的 profile 对该用户的 Maven 项目有效

全局 settings.xml:conf/settings.xml,对本机上所有 Maven 项目有效

示例:

<project>
  ...
  <profiles>
    <profile>
      <id>dev</id>
      <properties>
        <active.profile>dev</active.profile>
        <key1>value1</key1>
        <key2>value2</key2>
      </properties>
      <!-- 默认激活配置 -->
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
      <!-- 在该 profile 下才会引入的依赖 -->
      <dependencies>
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-context</artifactId>
          <version>3.2.4.RELEASE</version>
        </dependency>
      <dependencies>
      <!-- 在该 profile 下才会加载的变量文件 -->
      <build>
        <filters>
          <filter>../profile/test-pre.properties</filter>
        </filters>
      </build>
    </profile>
  </profiles>
  ...
</project>
目录
相关文章
|
3月前
|
Java Maven 数据安全/隐私保护
maven发布jar包到私服以及从私服下载jar包的操作
maven发布jar包到私服以及从私服下载jar包的操作
|
30天前
|
XML Java Shell
【深入浅出Maven开发实战】「入门教程系列」带你零基础学习和开发使用Maven开发工具实战指南(实战技术总结)(一)
【深入浅出Maven开发实战】「入门教程系列」带你零基础学习和开发使用Maven开发工具实战指南(实战技术总结)
77 1
|
7月前
|
Java 应用服务中间件 数据库连接
Maven入门案例实战
Maven入门案例实战
80 0
|
9月前
|
Java 测试技术 Maven
在IDEA工具中常见的一些Maven操作<第六课>(二)
在IDEA工具中常见的一些Maven操作<第六课>(二)
132 0
|
9月前
|
Java Maven
在IDEA工具中常见的一些Maven操作<第六课>(一)
在IDEA工具中常见的一些Maven操作<第六课>(一)
54 0
|
11月前
|
JavaScript Java 数据库连接
实战SSM_O2O商铺_03项目结构规划及Maven配置
实战SSM_O2O商铺_03项目结构规划及Maven配置
58 0
|
Java fastjson 程序员
3分钟为女同事解决Maven依赖冲突,这样操作,它不香吗?
这天小林无所事事准备下班,突然听见隔壁小美在哭泣,正(hao)义(se)的小林过去关切的问 “小美,你怎么了?是不是被该死的王经理欺负了?”, 小美抽泣着点点头 “经理叫我把这个 Maven 的红色波浪线去掉,可是我一直去不掉。”
|
Java Maven 网络架构
Maven 操作文档与代码示例
Maven 操作文档与代码示例
80 0
Maven 操作文档与代码示例
|
Java 持续交付 Maven
maven实战总结,工作中常见操作 中
maven实战总结,工作中常见操作 中
123 0
maven实战总结,工作中常见操作   中
|
Oracle 前端开发 Java
maven实战总结,工作中常见操作 上
maven实战总结,工作中常见操作 上
74 0
maven实战总结,工作中常见操作   上

热门文章

最新文章

推荐镜像

更多