`
hanwesley
  • 浏览: 58948 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

maven,velocity实战总结

 
阅读更多


A
ntx迁移maven小结

 

 

目录

 

Maven简单介绍 2

约定俗成 2

Maven坐标 2

Maven主项目和子项目管理的不同 2

Maven命令 3

Maven插件 3

1maven-compiler-plugin 指定JDK版本 3

2maven-war-plugin war web子项目中指定 3

3)单元测试插件 4

4)jar包插件 5

5resource插件  类似antxauto-config功能 5

6maven-eclipse-plugin插件 6

Maven库配置 7

 

 

 

 

Maven简单介绍

Maven是基于项目对象模型(Project Object Model),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具.

 

掌握maven就是要学会如何编写pom.xml,尤其对于多个子项目的管理

 

约定俗成

src/main/java  存放Java文件

src/main/resources  存放资源文件

src/main/test  存放测试文件

Maven坐标 

<groupId>com.ibatis</groupId>  项目属于哪个组

<artifactId>ibatis-sqlmap</artifactId>  项目在组中唯一的ID

<version>2.1.0.565</version>  项目当前的版本

<name>ibatis sqlmap包</name>  非必需,描述信息

在Maven中任何的jar,POM,或者war都是基于坐标进行区分的

 

Maven查询jar依赖地址

http://mvnrepo.taobao.ali.com:8081/nexus/

Maven主项目和子项目管理的不同

  主项目jar包版本统一管理

<dependencyManagement>

  子项目不用指定jar包版本

指定当前项目的坐标:

<groupId>com.taobao.newLauncher</groupId>

<artifactId>newLauncher-biz-home</artifactId>

<name>newlauncher-biz-home</name>

<version>1.0.0</version>

<packaging>jar</packaging> 

如果是主pom文件, packaging指定为pom

如果是要生成的war包,packaging指定为war

 

主项目指定子项目

<modules>

<module>newlauncher-biz-core</module>

<module>newlauncher-biz-home</module>

  </modules>

  

子项目需要指定parent

  <parent>

<artifactId>newLauncher</artifactId>

<groupId>com.taobao.newLauncher</groupId>

<version>1.0.0</version>

</parent>

Maven命令

mvn clean     删除target目录内容

mvn package   打包

mvn install   让项目真正引用生成的jar包

mvn test      执行测试用例

Maven插件

1)maven-compiler-plugin 指定JDK版本

  <plugin>

  <artifactId>maven-compiler-plugin</artifactId>

  <version>2.3.2</version>

  <configuration>

<source>1.6</source>

<target>1.6</target>

<showWarnings>true</showWarnings>

<encoding>gbk</encoding>

  </configuration>

  <dependencies>

<dependency>

  <groupId>org.codehaus.plexus</groupId>

  <artifactId>plexus-compiler-javac</artifactId>

  <version>1.8.1</version>

</dependency>

  </dependencies>

   </plugin>

 

2)maven-war-plugin war包 在web子项目中指定

 

<build>       

    <finalName>launcher</finalName>

<directory>target/jboss</directory>

     <plugins>

             <plugin>

                <groupId>org.apache.maven.plugins</groupId>

                <artifactId>maven-war-plugin</artifactId>

                <version>2.1.1</version>

                <configuration>

                    <webResources>

                        <resource>

<directory>src/main/resources</directory>

                            <filtering>true</filtering>

                            <includes>

                                <include>**/*.xml</include>

    <include>**/*.vm</include>

                            </includes>

                            <targetPath>WEB-INF</targetPath>

                        </resource>

                    </webResources>

                </configuration>

            </plugin>

        </plugins>

</build>

 

3)单元测试插件

 

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-surefire-plugin</artifactId>

<version>2.6</version>

<configuration>

<testFailureIgnore>true</testFailureIgnore>

 <!-单元测试失败依然打包-->

<skip>true</skip> 是否过滤单元测试

<!--<includes>

<include>**/*Test.java</include>

</includes>-->

<excludes>

<exclude>**/*Test.java</exclude>

  </excludes>

</configuration>

</plugin>

 

4)jar包插件

 

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-jar-plugin</artifactId>

<version>2.3.1</version>

<configuration>

<archive>

   <addMavenDescriptor>false</addMavenDescriptor>

是否增加maven描述信息

<manifest>

<addDefaultImplementationEntries>

true

</addDefaultImplementationEntries>

</manifest>

<manifestEntries>

   <Implementation-Build>${buildNumber}</Implementation-Build>

</manifestEntries>

</archive>

</configuration>

</plugin>

 

5)resource插件  替换 antxauto-config功能 

Mvn package Pdev  dev即定义的ID

 

Antx中的属性文件在Maven中如何引用?

 

在主pom.xml中增加配置属性  

<profiles>中可以有多个profile, id需唯一

 

<profiles>

<profile>

<id>dev</id> 

<properties>

<props>launcher.properties.dev</props> 

<dependency.version.ext>-SNAPSHOT</dependency.version.ext>

</properties>

<activation>

<activeByDefault>true</activeByDefault> 

是否默认引用此文件 如果此项为true,引用此文件 参数-P可以不指定

</activation>

</profile>

</profiles>

 

根据外部属性文件填写需要过滤文件中的变量,默认会生成到classes目录

 

<filters>

<filter>jdbc.properties.dev</filter> 

Filter 配置项指定过滤那个文件? 

1) 可以写文件名

2) 也可以写-P指定的profile ,

引用的是上述定义的profile dbc.properties.dev替换为../${props} 

</filters>

<resources>

<resource>

<directory>src/main/resources</directory>

<filtering>true</filtering> 

true需要过滤,false不需要过滤

<includes>  需要过滤的文件

<include>**/*.*</include>

<include>**/*</include>

</includes>

<excludes> 那些文件不需要移动到classes目录

<exclude>**/*.xml</exclude>

<exclude>**/*.vm</exclude>

              </excludes>

</resource>

<resource>

<directory>src/main/java</directory>

<includes>

<include>**/*.xml</include>

</includes>

</resource>

</resources>

需要注意的是:***.xml.vm文件中的${aaa_bbb_ccc}需要改变为${aaa.bbb.ccc}格式

6)maven-eclipse-plugin插件

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-eclipse-plugin</artifactId>

<version>2.8</version>

<configuration>

<sourceExcludes>

<sourceExclude>**/.svn/</sourceExclude>

</sourceExcludes>

<downloadSources>true</downloadSources>

</configuration>

</plugin>

Maven库配置

 

Maven从中央仓库下载这些资源文件,如果需要修改项目的下载地址,可以在主pom.xml文件中加入:

<repositories></repositories> 中任意增加repository仓库

 

<repository>

<id>simba-nexus</id>

<url>http://mvnrepo.reppp.com:8081/nexus/content/repositories/releases</url>

 <releases>

<enabled>true</enabled>

</releases>

<snapshots>

<enabled>false</enabled>

</snapshots>

</repository>

 

 

 

 

Velocity

 

 VelocityEngine

 Velocity

 

#set($admin="admin")定义变量

#if

#elseif

#end

 

#foreach($li in $list)

 $velocityCount 从1开始

 $li

#end

 

#include("one.txt","two.html",....) 包含本地文件

#parse("hello.vm") #parse引用的模板文件必须包含的TEMPLATE_ROOT指定的目录之下。

#stop 脚本允许模板设计员停止模板引擎的执行,并返回。这通常用作调试。

 

#macro

 

判断:$bean不为null或Boolean.TRUE

#if ($bean) … #end

?  判断字符串空:””或null

#if ($stringUtil.isEmpty($str)) … #end

?  判断字符串非空:非””和null

#if ($stringUtil.isNotEmpty($str)) … #end

 

 

性能是网站第一要素!

 性能优化大方向:  

   页面:

   应用与架构:

     服务器

     负载均衡

     数据库

   底层:

      硬件

      协议

  避免空等待,增加进度条,提示等

分享到:
评论
1 楼 abkiss 2015-01-07  
没有一点实用价值

相关推荐

    Maven权威指南 很精典的学习教程,比ANT更好用

    Maven实战 3. 一个简单的Maven项目 3.1. 简介 3.1.1. 下载本章的例子 3.2. 创建一个简单的项目 3.3. 构建一个简单的项目 3.4. 简单的项目对象模型 (Project Object Model) 3.5. 核心概念 3.5.1. Maven...

    spring-framework-3.2.4-RELEASE Maven Source Code

    - **Web MVC增强**:增加了对RESTful风格的支持,增强了模板引擎的集成,如FreeMarker、Velocity等。 - **WebSocket支持**:引入WebSocket API,为实时通信提供了新的解决方案。 - **性能优化**:在内存使用和...

    Spring Boot实战派(源码)

    - Spring Boot通过一系列的起步依赖来简化Maven或Gradle配置,比如`spring-boot-starter-web`用于构建Web应用,`spring-boot-starter-data-jpa`用于JPA数据访问。 3. **嵌入式Web服务器** - Spring Boot支持内嵌...

    Struts2.x 项目实战

    视图层,Struts2.x可以结合JSP、FreeMarker、Velocity等模板技术来展现数据。它提供了一系列的标签库,如`s:textfield`、`s:textarea`、`s:submit`等,简化了JSP页面的编写。 安全方面,Struts2.x框架在历史版本中...

    JFinalDemo.zip

    《JFinal + Freemarker + Maven 实战解析》 在当今快速发展的互联网行业中,高效、便捷的开发工具和框架是每个开发者必备的利器。本实例——"JFinalDemo.zip",结合了JFinal、Freemarker和Maven三个关键组件,为...

    Java EE 开发的颠覆者 Spring Boot 实战源码

    2. **Maven 或 Gradle 配置**:了解如何使用 Maven 或 Gradle 这样的构建工具来管理 Spring Boot 项目。 3. **Spring MVC**:Spring Boot 默认集成了 Spring MVC,用于构建 RESTful API 和处理 HTTP 请求。 4. **...

    findbugs、PMD、+checkstyle+集成

    **Maven实战集成步骤**: 1. 创建一个名为`build-tools`的模块,用于存放所有构建相关的配置和插件。 2. 在项目父`pom.xml`中添加`findbugs`、`checkstyle`和`pmd`的相关依赖,如`annotations`和`jsr305`,并配置...

    struts2快速入门实战文档

    本快速入门实战文档将引领你一步步地在Eclipse集成开发环境中搭建Struts2环境,开启你的Struts2学习之旅。 首先,你需要了解Struts2的核心概念。Struts2的核心组件包括Action、Result、Interceptor和Value Stack。...

    2022年Java毕业设计:基于SpringBoot+Vue工作考勤管理系统源码.zip

    总结起来,这个项目展示了现代Web应用的开发模式,即前后端分离,利用强大的SpringBoot后端框架和Vue.js前端框架协同工作,结合数据库管理,构建出一个完整的考勤管理系统。通过深入研究和理解这个项目,学生不仅...

    springboot从入门到精通

    SpringBoot的基础部分涵盖了如何创建第一个SpringBoot项目,通过起步依赖(Starters)简化Maven或Gradle配置。理解自动配置机制,它是SpringBoot的一大特点,能够自动配置合适的Bean,减少手动配置的工作量。同时,...

    java框架SSM项目案例

    7. **视图层**:配置视图解析器,如Velocity或Freemarker,将Controller处理后的数据传递给视图渲染。 8. **单元测试与整合测试**:编写JUnit测试用例,确保各个组件的正确交互。 通过这个项目案例,学习者可以实践...

    精品专题(2021-2022年收藏)Java高级程序员个人简历表格.docx

    - 多样化的技术栈:如Ext2、Struts2、JPA、Oracle 10g、RBAC模型、Maven 2、dojo、velocity等,显示了程序员在Web开发和数据库管理方面的广泛技能。 - 创新意识和团队协作:求职者强调了自己具备创新意识和团队...

    struts2 jar包下载

    如果你使用的是Maven或Gradle,可以通过在pom.xml或build.gradle文件中添加对应的依赖来管理这些库。否则,你可以手动将它们复制到你的应用服务器的lib目录,或者如果是Web应用,可以放到WEB-INF/lib目录下。 ...

    jfinal 完整Demo

    在项目初始化阶段,我们需要配置JFinal的启动类,设置项目的根路径,以及引入必要的Maven或Gradle依赖。 3. **路由配置** JFinal的路由配置是其核心特色之一,它将URL请求映射到相应的Action,即控制器方法。在`...

    mybatis+struts2整合demo

    4. Maven构建:通常,这样的整合项目会使用Maven作为构建工具,通过pom.xml文件管理项目的依赖。在pom.xml中,我们需要添加MyBatis、Struts2及其相关库的依赖。 5. 模板引擎整合:为了展示数据,我们可以结合...

    基于SpringBoot + vue + Element-UI 搭建的个人博客系统.zip

    7. **Gradle或Maven**:项目可能使用Gradle或Maven作为构建工具,管理依赖和构建流程。 8. **Thymeleaf或其他模板引擎**:SpringBoot默认支持Thymeleaf,用于生成动态HTML页面。如果项目使用了其他模板引擎,如...

    auto-mybatis.zip

    - 使用Maven插件:将Auto-Mybatis集成到Maven构建流程,每次数据库变更后自动更新代码。 - 集成IDE:通过Eclipse或IntelliJ IDEA的插件,实现一键生成代码。 6. 注意事项 - 数据库权限:确保运行Auto-Mybatis的...

    2019精通Spring Boot 42讲

    《2019精通Spring Boot 42讲》是一份深度学习Java开发框架Spring Boot的教程,涵盖了Spring Boot的核心概念、实战技巧以及最佳实践。在Java开发领域,Spring Boot以其简洁、快速的特性,已经成为现代企业级应用开发...

    springMVC学习资料

    在Spring实战(第4版).pdf这本书中,你可以深入学习Spring MVC的原理、最佳实践以及高级特性,如AOP(面向切面编程)、数据绑定、异常处理、国际化、RESTful API设计等。通过这本书,你将能够掌握Spring MVC的全貌...

    struts-2.2.3.1.zip

    Struts2是一个基于MVC(Model-View-Controller)设计模式的Java web应用...此外,熟悉Apache Maven或Gradle构建工具将有助于管理和构建Struts2项目。通过阅读官方文档和实战练习,你可以快速上手并精通Struts2框架。

Global site tag (gtag.js) - Google Analytics