Maven的六类属性,${project.basedir},${project.build.directory}

主要有两个常用内置属性: b a s e d i r ( p o m . x m l ) {version}项目版本

POM属性

用户可以使用该属性引用POM文件中对应元素的值,常用的POM属性包括:

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

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

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

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

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

${project.groupId}:项目的 groupId

${project.artifactId}:项目的 artifactId

p r o j e c t . b u i l d . f i a n l N a m e {project.artifactId}-${project.version}

自定义属性

用户可以在POM的元素下自定义Maven属性

Settings属性

用户使用settings.开头的属性引用 settings.xml 文件中XML元素的值

Java系统属性

所有Java系统属性都可以使用Maven属性引用

环境变量属性

所有环境变量都可以使用以env.开头的Maven属性引用

在依赖中 使用pom变量

<dependencies>
    <dependency>
        <groupId>${project.groupId}</groupId>
        <artifactId>part-a</artifactId>
        <version>${project.version}</version>
    </dependency>
    <dependency>
        <groupId>${project.groupId}</groupId>
        <artifactId>part-b</artifactId>
        <version>${project-version}</version>
    </dependency>
</dependencies>

在插件中使用pom变量

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.5</version>
    <configuration>
        <repositoryDirectory>${project.build.directory}/test-reports</repositoryDirectory>
    </configuration>
</plugin>

自定义变量

 <properties>
     <db.driver>com.mysql.jdbc.Driver</db.driver>
     <db.url>jdbc:mysql://localhost:3360/test</db.url>
     <db.username>username</db.username>
     <db.password>password></db.password>
 </properties>
</profiles>

Maven属性默认只有在POM中才会被解析,因此需要让Maven解析资源文件中的Maven属性。Maven用maven-resources-plugin处理资源文件。它默认的行为只是将项目主资源文件复制到主代码编译输出目录中,将测试资源文件复制到测试代码编译输出目录中。

Maven默认的主资源目录和测试资源目录的定义是在超级POM中,要为资源目录开启过滤,只要在此基础上添加一行filtering配置即可。

Filtering是maven resource插件的功能,作用是用环境变量,pom文件里定义的属性和指定文件里的属性替换属性文件的占位符。(超级pom在 apache-maven-3.3.9\lib\maven-model-builder-3.3.9.jar\org\apache\maven\model\pom-4.0.0.xml)

Maven的六类属性,${project.basedir},${project.build.directory}内置属性POM属性自定义属性Settings属性Java系统属性环境变量属性在依赖中 使用pom变量在插件中使用pom变量自定义变量内置属性主要有两个常用内置属性:basedir项目的根目录(包含pom.xml文件的目录),{basedir}项目的根目录(包含pom.xml文件的目录),basedir项目的根目录(包含pom.xml文件的目录),{version}项目版本POM属性用户可以
在中央仓库中或者私服中没有目标资源的时候,就需要使用本地jar包,或者将jar包deploy到私服,如果只在本地使用,则需要在pom文件中的依赖做如下类似引用: <dependency> <groupId>org.patchca</groupId> <artifactId>patchca</artifactId> <version>0.5.0</version> <systemPath>$
用户可以使用该属性引用POM文件中对应元素的值,常用的POM属性包括: ${project.build.sourceDirectory}:项目的主源码目录,默认为 src/main/java ${project.build.testSourceDirectory}:项目的测试源码目录,默认为 src/test/java ${project.build.di
虽然现在Maven很方便,但还是会有一些jar是不开源的,也就是说在Maven仓库中是下载不到的,比如对接阿里云、通联等,这个时候就需要我们手动将这些jar包下载下来,然后手动添加到我们的项目中1、先下载好自己需要的jar包,如下: 2、在SpringBoot中的resources目录新建一个lib目录,将这些jar放进去 3、然后在pom.xml文件中引入这些jar包,注意,这里要使用${project.basedir} 的方式,如下: 前面两步都是铺垫的,重要的是第三步,也就是导入方式。....
1、Maven外部引用 使用Maven内置属性—${basedir},该属性的用途就如字面意思根目录,就是获取项目根目录路径的一个属性。 直接创建一个lib放入外部包然后直接写路径就行。 2、内置属性使用 常用的有<properties>元素可以使用他自定义属性用法如下: <project> <properties> <!--这里定义一个my.version的属性在下面的地方可以直接${my.version}引用这个属性--> <my.ver
pom.xml文件描述了maven项目的基本信息,比如groupId,artifactId,version等。也可以对maven项目的远程仓库,打包形式,资源依赖关系等进行配置。一个最简单的pom.xml文件至少需要包含四个元素:modelVersion,groupId,artiffactId和version。 在一...
maven打包加时间戳 基于Maven的项目,发布时需要打包,如web项目打成war格式包。每次打包时希望自己加上时间戳,假如我的项目名是myproject,默认打包后名为ROOT-2.1.1.war。而我希望的名字为ROOT-2.1.1-{yyyyMMddHHmmss},方便以后对包进行查找与管理,如何实现这种效果呢? 使用maven自带的属性 设置时间戳格式:在pom.xml文件中加入以下配...
Maven is a software project management and comprehension tool. Based on the concept of a Project Object Model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information. Documentation ------------- The most up-to-date documentation can be found at http://maven.apache.org/. Release Notes ------------- The full list of changes can be found at http://maven.apache.org/release-notes.html. System Requirements ------------------- 1.7 or above (this is to execute Maven - it still allows you to build against 1.3 and prior JDK's). Memory: No minimum requirement. Disk: Approximately 10MB is required for the Maven installation itself. In addition to that, additional disk space will be used for your local Maven repository. The size of your local repository will vary depending on usage but expect at least 500MB. Operating System: Windows: Windows 2000 or above. Unix based systems (Linux, Solaris and Mac OS X) and others: No minimum requirement. Installing Maven ---------------- 1) Unpack the archive where you would like to store the binaries, eg: Unix-based operating systems (Linux, Solaris and Mac OS X) tar zxvf apache-maven-3.x.y.tar.gz Windows unzip apache-maven-3.x.y.zip 2) A directory called "apache-maven-3.x.y" will be created. 3) Add the bin directory to your PATH, eg: Unix-based operating systems (Linux, Solaris and Mac OS X) export PATH=/usr/local/apache-maven-3.x.y/bin:$PATH Windows set PATH="c:\program files\apache-maven-3.x.y\bin";%PATH% 4) Make sure JAVA_HOME is set to the location of your JDK 5) Run "mvn --version" to verify that it is correctly installed. For complete documentation, see http://maven.apache.org/download.html#Installation Licensing --------- Please see the file called LICENSE. ${basedir} 项目根目录 ${project.build.directory} 构建目录,缺省为target ${project.build.outputDirectory} 构建过程输出目录,缺省为target/classes project.build.finalName产出物名称,缺省为{project.build.finalName} 产出物名称,缺省...
`${project.basedir}` 是一个Maven中的变量,表示项目根目录的路径。使用 `${project.basedir}` 可以让我们在pom.xml文件中引用项目根目录下的文件或目录。 如果你想在pom.xml文件中配置打包后的jar文件放在项目根目录下,可以在 `<build>` 标签中配置 `<finalName>` 标签,并使用 `${project.basedir}` 变量来指定输出的目录。具体操作如下: ```xml <build> <finalName>your-jar-name</finalName> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <executable>true</executable> </configuration> </plugin> </plugins> <outputDirectory>${project.basedir}</outputDirectory> </build> 上述配置中,`<finalName>` 标签用来指定打包后的jar文件名,`<outputDirectory>` 标签用来指定打包后的jar文件输出的目录,这里使用了 `${project.basedir}` 变量来表示项目根目录。 执行命令 `mvn clean package` 后,就会在项目根目录下生成一个名为 `your-jar-name.jar` 的可执行jar文件。