`

maven中的灵活构建

 
阅读更多

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作为Java领域广泛使用的...实践中,需要灵活运用Maven的各种特性,结合最佳实践,以构建高效、稳定的多模块项目。

    Maven构建ssh项目实例

    在IT行业中,SSH(Spring、Struts和Hibernate)是一个经典的Java Web开发框架组合,而...这个过程中,开发者不仅需要理解Maven的工作原理,还需要对Spring、Struts和Hibernate有深入的理解,以便在实践中灵活运用。

    maven 构建最新ssh框架整合

    在Maven的pom.xml文件中,我们可以声明各框架的依赖,并且通过Maven的生命周期来执行构建过程,如编译、测试、打包成WAR或JAR文件,最后部署到服务器。 使用Maven构建SSH框架整合的过程大致包括以下步骤: 1. **...

    使用maven Filtering实现多环境构建

    在软件开发过程中,多环境构建是一项重要的任务...总之,Maven Filtering与Profile的结合使用,为Java开发者提供了一种强大且灵活的多环境构建解决方案,使得项目能在不同环境中无缝地运行,提高了开发效率和产品质量。

    Spring in Action 使用Maven 构建Spring 工程

    在Maven构建的工程中,我们可以使用XML配置文件(通常命名为`beans.xml`)来定义bean及其依赖关系,或者使用Java配置类,这使得配置更加灵活且易于测试。Spring容器会根据配置自动实例化bean,并负责它们的生命周期...

    maven plugin maven plugin

    Maven 插件是 Maven 构建系统中的一个重要组成部分,它极大地扩展了 Maven 的功能,使其能够处理各种特定的任务,如编译、测试、打包、部署等。在 Maven 中,插件是通过 Maven 插件管理系统(scm)进行管理和使用的...

    使用maven Profile实现多环境构建

    在软件开发过程中,特别是在企业级应用的构建中,往往需要针对不同的运行环境(如开发、测试、生产等)进行配置的差异化处理。Maven作为Java项目管理的强大工具,提供了Profile功能来解决这个问题。Profile允许我们...

    Maven2中文使用手册

    - 对于非标准的构建需求,Maven 可能显得不够灵活。 - 中央仓库可能没有所有项目所需的库,有时需要自建私有仓库。 - 大项目可能因为大量的依赖导致构建速度慢。 ### Maven2 进阶 - **多模块项目(Multi-module ...

    Maven exec-maven-plugin:执行外部命令的实践指南

    exec-maven-plugin是一个灵活且功能丰富的Maven插件,它极大地扩展了Maven的构建能力。通过本文的介绍,读者应该对如何使用exec-maven-plugin有了深入的理解,能够将其应用到实际的Maven项目中。 本文详细介绍了...

    maven构建项目,整合springmvc jpa

    在IT行业中,构建Java应用程序时,我们经常使用Maven作为项目管理工具,SpringMVC作为Web层框架,而JPA(Java Persistence API)则作为持久层解决方案。这三者结合可以构建出高效、可维护的现代企业级应用。现在,让...

    Maven仓库apache-maven-3.2.5

    总结来说,Apache Maven 3.2.5是一个强大而灵活的Java项目管理工具,它通过统一的构建生命周期、依赖管理和仓库机制,简化了项目的构建和维护工作。这个版本在性能和稳定性上做了优化,为开发者提供了更高效、更友好...

    maven 权威指南中文版

    这意味着Maven不仅能够处理构建过程中的各个阶段,比如编译、测试和打包等,还能通过一系列内置的生命周期和约定简化项目的管理。例如,Maven规定了项目目录结构、构建过程以及依赖管理等方面的标准。 **1.2 约定...

    maven历史版本下载

    2. **插件管理**:Maven的插件管理系统得到了加强,允许更灵活地配置和管理插件版本,减少了构建冲突的可能性。 3. **依赖管理**:3.5.2增强了依赖解析机制,能更准确地处理传递性依赖,避免了版本冲突。 4. **...

    maven3.0 maven3.0

    4. **更灵活的生命周期**:Maven 3.0 改进了生命周期阶段,使得用户可以更自由地自定义构建流程,增加了更多的内置目标,方便开发者进行各种操作。 5. **增强的错误报告**:Maven 3.0 提供了更详细的错误报告,帮助...

    最新Maven版本:apache-maven-3.6.0

    总之,Apache Maven 3.6.0作为项目管理和构建工具,通过其标准化的流程、强大的依赖管理和灵活的扩展性,大大降低了Java项目的复杂度,提高了开发团队的协作效率。对于Java开发者来说,熟练掌握Maven的使用至关重要...

    Maven 构建多个项目示例代码

    在软件开发过程中,Maven是一个不可或缺的工具,它主要用于管理和构建Java项目。Maven通过一个中央仓库和约定优于配置的原则,使得项目的构建、依赖管理变得简单而规范。本示例代码"**Maven 构建多个项目示例代码**...

    maven中文完整版权威指南pdf

    ** profiles**是Maven中的一个灵活特性,允许根据不同的环境或条件来调整构建行为。这在处理不同部署环境的差异时非常有用。 在实际开发中,你还将学习到如何编写**Maven插件**来自定义构建过程,以及如何使用**...

    Maven权威指南中文完整版清晰

    Maven的灵活性在于其强大的插件系统,插件提供了各种构建目标,如编译、测试、打包、部署等。开发者可以通过在POM中配置插件来扩展Maven的功能。 6. 项目聚合与模块化: Maven支持多模块项目,一个父POM可以管理...

Global site tag (gtag.js) - Google Analytics