1.为了是项目的配置更加的灵活,我们可以采用maven中的属性
maven中的属性分别为:
A.内置属性:主要有两个常用内置属性 ${basedir}表示项目根目录,即包含pom.xml文件的目录,${version}表示项目的版本
B.pom属性:${project.artifactId} 就对应了<artifactId>元素,${project.groupId} ,${project.version}
常用的POM属性
${project.build.sourceDirectory} : 项目的主源码目录,默认为:src/main/java。
${project.build.testSourceDiretory} :项目的测试源码目录, 默认为:src/test/java。
${project.build.directory} :项目构建输出目录,默认为target。
${project.outputDirectory} : 项目主代码编译输出目录,默认为: target/classess。
${project.testOutputDirectory} : 项目主代码编译输出目录,默认为: target/test-classess。
${project.groupId} : 项目的groupId。
${project.artifactId}: 项目的artifactId。
${project.version} :项目的版本。
${project.build.finalName} :项目打包输出文件的名称,默认为${project.artifactId} -${project.artifactId}。
C.自定义属性,我们可以通过<projecties>属性完成
<projecties>
<struts.version>1.3</struts.version>
</projecties>
D.Settings属性:与POM属性同理,可以使用settings,开头的属性引用setting.xml文件中XML元素的值,如常用的
${settings.localRepository}指向用户本地仓库的地址。
E. java系统属性: 所有Java系统属性都可以使用Maven属性引用,例如${user.home}指向用户目录。用户可以使用
mvn help :system 查看所有的java系统属性。
F: 环境变量属性:所有环境变量都可以使用以 env 开头的Maven属性引用。例如 ${env.JAVA_HOME}
针对不同的环境,我们为了灵活切换,可以采用profile配置
例如:
<!-- 启动tomcat -->
<profile>
<id>tomcat</id>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<version>1.2.3</version>
<executions>
<execution>
<id>cargo-run</id>
<phase>pre-integration-test</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<container>
<containerId>tomcat7x</containerId>
<home>D:\apache-tomcat-7.0.29</home>
</container>
<configuration>
<type>standalone</type>
<home>${project.build.directory}/tomcat7.0.29</home>
<properties>
<cargo.jvmargs>
-Xdebug
-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8787
</cargo.jvmargs>
</properties>
</configuration>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<!-- 启动jboss -->
<profile>
<id>jboss</id>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<version>1.2.3</version>
<executions>
<execution>
<id>cargo-run</id>
<phase>pre-integration-test</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<container>
<containerId>jboss42x</containerId>
<home>${env.JBOSS_HOME}</home>
</container>
<configuration>
<type>standalone</type>
<home>${project.build.directory}/jboss-4.2.3.GA</home>
<properties>
<cargo.jvmargs>
-Xdebug
-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8787
</cargo.jvmargs>
<cargo.servlet.port>17200</cargo.servlet.port>
</properties>
</configuration>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
如果采用tomcat运行则运行命令:mvn clean install -Ptomcat,如果采用jboss运行,则运行命令:mvn clean
install -Pjboss。
这里可以灵活的部署和运行。
分享到:
相关推荐
很详细的Maven学习资料,值得大家学习一下。
我们的目标是让学员不仅能够安装和配置Maven,还能够灵活运用Maven的各种高级功能,以适应不同项目的需求。 通过本课程的学习,学员将能够: 理解Maven的工作原理及其在现代软件开发中的重要性。 掌握Maven的安装...
第14章:灵活的构建/14.2 Maven属性的使用/14.2.1 直接在POM文件中使用 第14章:灵活的构建/14.2 Maven属性的使用/14.2.2 使用注解:Parameter 第14章:灵活的构建/14.2 Maven属性的使用/14.2.3 属性解析/14.2.3.1 ...
Maven采用了一种被称之为project object model (POM)概念来管理项目,所有的项目配置信息都被定义在一个叫做POM.xml的文件中,通过该文件,Maven可以管理项目的整个声明周期,包括编 译,构建,测试,发布,报告等等...
第1章 maven简介1.1 何为maven1.1.1 何为构建1.1.2 maven是优秀的构建工具1.1.3 maven不仅仅是构建工具1.2 为什么...灵活的构建第15章 生成项目站点第16章 m2eclipse第17章 编写maven插件第18章 archetype
系统性地阐述了使用Nexus建立私服、使用Maven进行测试、使用Hudson进行持续集成、使用Maven构建Web应用、Maven的版本管理、Maven的灵活构建、生成项目站点和Maven的m2eclipse插件等实用性较强的高级知识,读者可有...
系统性地阐述了使用Nexus建立私服、使用Maven进行测试、使用Hudson进行持续集成、使用Maven构建Web应用、Maven的版本管理、Maven的灵活构建、生成项目站点和Maven的m2eclipse插件等实用性较强的高级知识,读者可有...
系统性地阐述了使用Nexus建立私服、使用Maven进行测试、使用Hudson进行持续集成、使用Maven构建Web应用、Maven的版本管理、Maven的灵活构建、生成项目站点和Maven的m2eclipse插件等实用性较强的高级知识,读者可有...
系统性地阐述了使用Nexus建立私服、使用Maven进行测试、使用Hudson进行持续集成、使用Maven构建Web应用、Maven的版本管理、Maven的灵活构建、生成项目站点和Maven的m2eclipse插件等实用性较强的高级知识,读者可有...
系统性地阐述了使用Nexus建立私服、使用Maven进行测试、使用Hudson进行持续集成、使用Maven构建Web应用、Maven的版本管理、Maven的灵活构建、生成项目站点和Maven的m2eclipse插件等实用性较强的高级知识,读者可有...
系统性地阐述了使用Nexus建立私服、使用Maven进行测试、使用Hudson进行持续集成、使用Maven构建Web应用、Maven的版本管理、Maven的灵活构建、生成项目站点和Maven的m2eclipse插件等实用性较强的高级知识,读者可有...
Maven采用了一种被称之为project object model (POM)概念来管理项目,所有的项目配置信息都被定义在一个叫做POM.xml的文件中,通过该文件,Maven可以管理项目的整个声明周期,包括编 译,构建,测试,发布,报告等等...
Maven作为一款强大的项目管理工具,为开发者提供了自动化构建、依赖管理、项目文档生成等功能。通过掌握Maven的核心概念和基本使用,开发者可以更加高效地管理项目,提高开发效率和质量。同时,Maven的灵活性和可...
Maven采用了一种被称之为project object model (POM)概念来管理项目,所有的项目配置信息都被定义在一个叫做POM.xml的文件中,通过该文件,Maven可以管理项目的整个声明周期,包括编 译,构建,测试,发布,报告等等...
Maven进行测试、使用Hudson进行持续集成、使用 Maven构建 Web应用、Maven的版本管理、Maven的灵活构 建、生成项目站点和 Maven的 m2eclipse插件等实用性较强的高级知识,读者可有选择性的阅读;扩展性地讲解 了如何 ...
而Maven本身还支持多种插件, 可以方便更灵活的控制项目, 开发人员的主要任务应该是关注商业逻辑并去实现它, 而不是把时间浪费在学习如何在不同的环境中去依赖jar包,项目部署等。 Maven和ant都是软件构建工具(软件...
Dart Maven插件可将Google Dart集成到Maven构建过程中。 它查找带有文件夹 #Changenotes ### 3.0.0 dart:dart2js现在可以跨threadCount并行编译多个编译器会话 dart:pub现在通过提供pubCommand例如get和...
Maven是一个项目管理工具,它可以帮助开发人员自动化构建、依赖管理和项目报告生成等任务。 Maven使用一种被称为"项目...总之,Maven是一个强大而灵活的项目管理工具,可以帮助开发人员更高效地构建和管理Java项目。
Neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而...程序员工作在一个面向对象的、灵活的网络结构下而不是严格、静态的表中——但是他们可以享受到具备完全的事务特性、企业级的数据库的所有好处。