- 浏览: 473967 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
zjxkeven:
放在自己工程上不报错,已放在服务器上就报错
java获得CPU使用率,系统内存,虚拟机内存等情况 -
wang1990cool:
能运行?我报错啊、
java获得CPU使用率,系统内存,虚拟机内存等情况 -
yue_ch:
yue_ch 写道getTotalPhysicalMemory ...
java获得CPU使用率,系统内存,虚拟机内存等情况 -
yue_ch:
getTotalPhysicalMemorySize()get ...
java获得CPU使用率,系统内存,虚拟机内存等情况 -
kjmmlzq19851226:
private RealSubject realSubject ...
代理模式,静态代理与动态代理
创建项目
mvn archetype:create -DgroupId=org.jee.tool -DartifactId=jee-tool
创建org.jee.tool项目
如果报错提示archetype没找到,解决办法如下:
I kept getting an error about the maven-archetype-plugin whenever I tried to create a new application using maven 2. It turns out part of my local maven repository must have become corrupted or failed to download properly. It was solved by deleting .m2/repository/org/apache/maven and allowing maven to download all the required dependencies again.
创建子模块项目
cd org.jee.tool
mvn archetype:create -DgroupId=org.jee.tool -DartifactId=jee-local-cache
mvn archetype:create -DgroupId=org.jee.tool -DartifactId=jee-log
mvn archetype:create -DgroupId=org.jee.tool -DartifactId=jee-log-analyse
mvn archetype:create -DgroupId=org.jee.tool -DartifactId=jee-rpc
此时查看jee-tool/pom.xml,已经自动添加了<modules>的4个子项目模块。
创建eclipse项目文件
mvn eclipse:eclipse 生成eclipse所需文件
mvn eclipse:clean 删除eclipse配置文件
更多eclipse插件:http://maven.apache.org/plugins/maven-eclipse-plugin/
config plugin
plugin 类型:build plugin & report plugin
url:http://maven.apache.org/guides/mini/guide-configuring-plugins.html
插件编写:
/** * @goal query */ public class MyQueryMojo extends AbstractMojo { /** * @parameter expression="${query.url}" */ private String url; /** * @parameter default-value="60" */ private int timeout; /** * @parameter */ private String[] options; public void execute() throws MojoExecutionException { ... } }
通过 <configuration/>配置参数:
<project> ... <build> <plugins> <plugin> <artifactId>maven-myquery-plugin</artifactId> <version>1.0</version> <configuration> <url>http://www.foobar.com/query</url> <timeout>10</timeout> <options> <option>one</option> <option>two</option> <option>three</option> </options> </configuration> </plugin> </plugins> </build> ... </project>
通过参数配置
mvn myquery:query -Dquery.url=http://maven.apache.org
可以配置Collection,Class,Properties
使用executions能将插件插入到不同的build阶段
You can also configure a mojo using the <executions> tag. This is most commonly used for mojos that are intended to participate in some phases of the build lifecycle . Using MyQueryMojo as an example, you may have something that will look like:
<build> <plugins> <plugin> ... <executions> <execution> <id>execution1</id> <phase>test</phase> ... </execution> <execution> <id>execution2</id> <phase>install</phase> <configuration> <url>http://www.bar.com/query</url> <timeout>15</timeout> <options> <option>four</option> <option>five</option> <option>six</option> </options> </configuration> <goals> <goal>query</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
build lifecyle
- validate - validate the project is correct and all necessary information is available
- compile - compile the source code of the project
- test - test the compiled source code using a suitable unit testing framework. These tests should not require the code be packaged or deployed
- package - take the compiled code and package it in its distributable format, such as a JAR.
- integration-test - process and deploy the package if necessary into an environment where integration tests can be run
- verify - run any checks to verify the package is valid and meets quality criteria
- install - install the package into the local repository, for use as a dependency in other projects locally
- deploy - done in an integration or release environment, copies the final package to the remote repository for sharing with other developers and projects.
phase and goal
mvn clean dependency:copy-dependencies
phase = clean
goal = dependency:copy-dependencies
结合plugin在不同周期执行ant命令:在validate阶段删除target下全部文件
<build> <plugins> <plugin> <artifactId>maven-antrun-plugin</artifactId> <executions> <execution> <phase>validate</phase> <goals> <goal>run</goal> </goals> <configuration> <tasks> <delete dir="${project.basedir}/target" /> </tasks> </configuration> </execution> </executions> </plugin> </plugins></build>
Building For Different Environments with Maven 2
使用antrun-plugin插件行进文件删除以及拷贝
以下profile id为deploy177,通过mvn install -Pdeploy177进行打包
<profiles> <profile> <id>deploy177</id> <build> <plugins> <plugin> <artifactId>maven-antrun-plugin</artifactId> <executions> <execution> <phase>test</phase> <goals> <goal>run</goal> </goals> <configuration> <tasks> <delete file="${project.build.outputDirectory}/environment.properties"/> <copy file="src/main/resources/environment.test.properties" tofile="${project.build.outputDirectory}/environment.properties"/> </tasks> </configuration> </execution> </executions> </plugin> <plugin> <artifactId>maven-surefire-plugin</artifactId> <configuration> <skip>true</skip> </configuration> </plugin> <plugin> <artifactId>maven-jar-plugin</artifactId> <executions> <execution> <phase>package</phase> <goals> <goal>jar</goal> </goals> <configuration> <classifier>deploy177</classifier> </configuration> </execution> </executions> </plugin> </plugins> </build> </profile> .. Other profiles go here .. </profiles>
打包方式是war包的配置:
<plugin> <artifactId>maven-war-plugin</artifactId> <executions> <execution> <phase>package</phase> <goals> <goal>war</goal> </goals> <configuration> <classifier>deploy177</classifier> </configuration> </execution> </executions> </plugin>
build war
见http://maven.apache.org/plugins/maven-war-plugin/usage.html
使用war plugin:
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.0</version> <configuration> <webResources> <resource> <!-- fund-web/fund-web-war/ this is relative to the pom.xml directory --> <directory>fund-web/fund-web-war/WebRoot</directory> </resource> </webResources> </configuration> </plugin>
结合yuicompressor压缩js和css
这段代码调试了很久,在maven里面执行总是出错。没有源码不好排查。最终是功能是实现了。但是这里的srcfile和targetfile是同一个文件,通过拷贝到overlay的war中进行修改。
<apply executable="java" parallel="false" failonerror="true" dest="${project.basedir}/WebRoot" append="false" force="true"> <fileset dir="${project.basedir}/WebRoot"> <include name="**/**.js" /> <include name="**/**.css" /> </fileset> <arg line="-jar" /> <arg path="${project.basedir}/../lib/yuicompressor-2.4.2.jar" /> <arg line="--charset utf-8" /> <srcfile /> <arg line="-o" /> <mapper type="glob" from="*" to="*" /> <targetfile /> </apply>
maven使用ant task的apply时有bug,以上配置跑出来结果srcfile和targetfile均在最后出现。
使用overlay将不同文件打包
通过profile进行配置文件修改主要针对编译后的class的。无法满足压缩js和css的替换。
期待的打包方式是:开发人员开发css,js,本地运行无压缩版本。
打包时自动将css,js压缩打包。
maven提供overlay进行打包。
地址:http://maven.apache.org/plugins/maven-war-plugin/overlays.html
这个文档看了基本上一头雾水。
我花费了3个小时,终于把这个overlay实现了。请看此图:
overlay不是在自己的项目里面进行替换,而是需要新建一个pom,
依赖原有war
<dependencies> <dependency> <groupId>com.tenpay.fund.web</groupId> <artifactId>fund-web-war</artifactId> <version>1.0</version> <classifier>deploy177</classifier> <type>war</type> <scope>runtime</scope> </dependency> </dependencies>
设置哪些需要include,哪些需要exclude:这是表示当前项目的文件是否覆盖原有的war内容
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.0</version> <configuration> <webResources> <resource> <directory>${project.basedir}/WebRoot</directory> </resource> </webResources> <warName>fund</warName> <dependentWarExcludes>**/*.js</dependentWarExcludes> <overlays> <overlay> <groupId>com.tenpay.fund.web</groupId> <artifactId>fund-web-war</artifactId> <classifier>deploy177</classifier> <excludes> <exclude>test.html</exclude> </excludes> </overlay> </overlays> </configuration> </plugin>
通过tomcat-maven-plugin部署到服务器tomcat
1.配置maven\conf\settings.xml,在servers内添加测试服务器manager用户名密码
<servers> <server> <id>f3_server</id> <username>admin</username> <password>admin</password> </server> </servers>
2.在war项目的pom文件添加tomcat-maven插件
<plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>tomcat-maven-plugin</artifactId> <configuration> <server>f3_server</server> <url>http://f3.tenpay.com/manager/html</url> <warFile>${project.basedir}/target/fund.war</warFile> <path>/fund</path> </configuration> </plugin>
server对应setting.xml内配置
url对应manager的html
warFile对应生成的war文件
path对应部署的应用路径
3.运行tomcat插件
tomcat中不存在应用时运行mvn tomcat:deploy
tomcat中存在应用时运行mvn tomcat:redeploy
附录:
执行redeploy的部分输出:
[INFO] [war:war]
[INFO] Exploding webapp...
[INFO] Copy webapp webResources to D:\workspace\trunk_3\fund\fund-web\fund-w
[INFO] Copy webapp webResources to D:\workspace\trunk_3\fund\fund-web\fund-w
[INFO] Assembling webapp fund-war-compress in D:\workspace\trunk_3\fund\fund
[INFO] Expanding: D:\m2\repository\com\tenpay\fund\web\fund-web-war\1.0\fund
eb\fund-war-compress\target\war\work\fund-web-war-1.0
[INFO] Overlaying 1 war(s).
[INFO] Generating war D:\workspace\trunk_3\fund\fund-web\fund-war-compress\t
[INFO] Building war: D:\workspace\trunk_3\fund\fund-web\fund-war-compress\ta
[INFO] [tomcat:redeploy]
[INFO] Deploying war to http://f3.tenpay.com/fund
[INFO] OK - Undeployed application at context path /fund
[INFO] OK - Deployed application at context path /fund
[INFO] ---------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
本地构建远程资源中心
<distributionManagement> <repository> <id>tenpay-releases</id> <name>tenpay Release Repository</name> <url>http://10.6.208.112/nexus/content/repositories/releases/</url> </repository> <snapshotRepository> <id>tenpay-snapshots</id> <name>tenpay Snapshot Repository</name> <url>http://10.6.208.112/nexus/content/repositories/snapshots/</url> </snapshotRepository> </distributionManagement>
通过distributionManagement设置
发表评论
-
member系统
2013-08-05 16:18 0member 系统源码 -
hibernate generate tool
2012-09-06 11:33 0hibernate generate tool -
funcation spec and technical spec of vanceinfo
2012-08-02 11:21 0asdfasdf -
Web大数据量页面优化实践
2012-07-02 15:18 980pdf见附件 -
Eclipse Shortcuts
2012-02-29 16:31 894http://www.allapplabs.com/eclip ... -
协议的定制
2011-04-19 17:42 0哀伤的发生的发送方的 wireshark 截取发送消 ... -
uc面试
2011-04-14 18:03 0一、综合测试 1、有7 ... -
velocity输出csv的一种做法
2010-10-12 16:36 2402使用spring mvc + velocity做项目时, ... -
java平台启动脚本
2012-07-27 16:37 4156window平台java启动脚本 @e ... -
flex相关资料
2010-04-24 22:05 0http://www.adobe.com/devnet/fle ... -
开放平台的一些思考
2010-03-22 17:22 0开放平台开发人员编写rpc请求,还是直接进行服务代 ... -
web开发中的中文问题
2014-02-22 21:44 869web开发中的中文 ... -
Evaluation_strategy:java call by sharing赋值策略参数传递
2010-02-14 06:25 187关于java call by value or call by ... -
osgi的企业级开发的一些经验
2010-02-05 17:01 2119前面看了论坛里面关 ... -
spring 3.0 应用springmvc 构造RESTful URL 示例
2010-02-04 12:22 0转载自:http://niyong.iteye.com/blo ... -
声明式缓存,View层缓存讨论
2010-02-03 23:19 1129背景:由于理财专区二期的基金数据一天更新一次。并且都是非操作型 ... -
mysql guide
2010-01-31 17:07 0mysql最大能存多少 InnoDB存储引擎将Inno ... -
面试题系列一:exception未被捕获,但有finally,请问打印结果
2010-01-23 23:33 294看代码,猜结果: package jyy.exceti ... -
有趣的实验报告
2009-12-25 12:51 236淘宝一位同事上大学时 ... -
zimbra修改记录分享
2009-12-23 22:38 4280晚上找到了jetty的日志 ...
相关推荐
创建一个简单的Maven项目,首先你需要创建一个名为`hello`的目录,然后在其中创建`pom.xml`文件,内容如下: ```xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi=...
**Maven的HelloWorld程序** 在Java开发领域,Maven是一个不可或缺的构建工具,它极大地简化了项目的构建、管理和依赖管理过程。对于初学者来说,理解并创建一个基本的Maven项目,例如“HelloWorld”程序,是入门的...
return "Hello Maven......"; } public static void main(String[] args) { System.out.println(new HelloWorld().sayHello()); } } ``` 4. **运行Maven命令**: - `mvn clean compile`:清理`target`目录...
在IT行业中,Maven和SpringMVC是两个非常重要的组件,它们分别是项目管理和Web应用程序开发的核心工具。Maven是一款强大的项目构建系统,它通过管理项目的依赖关系和构建生命周期,简化了Java开发流程。而SpringMVC...
**Spring MVC HelloWorld Maven实例** Spring MVC是Spring框架的一部分,它是一个用于构建Web应用程序的模型-视图-控制器(MVC)架构。在这个实例中,我们将深入理解如何使用Maven构建一个基本的“Hello, World!”...
标题中的“普通的IDEA maven java项目demo(hello word)-1.8”指的是一个基于IntelliJ IDEA的Java项目,使用Maven构建系统,并且是初学者级别的Hello World示例。这个项目可能是为了教授Java编程语言的基础知识,...
<title>Hello Maven & Spring <h1><c:out value="${message}" /> ``` ### 8. 运行与测试 在 IDE 中运行 Maven 项目,通过浏览器访问 `http://localhost:8080/`,你应该能看到 "Hello, Maven & Spring!" 的...
**EJB3 Maven HelloWorld项目详解** 企业级JavaBean(Enterprise JavaBeans,简称EJB)是Java平台上用于构建可部署在服务器端的企业级应用的核心技术之一。EJB3是EJB规范的一个重要版本,它极大地简化了开发过程,...
Maven 3 入门 -- HelloWorld Maven 是一个强大的项目管理工具,主要用于构建、管理和部署Java项目。在Java开发领域,Maven 已经成为标准的构建工具,它通过简化项目构建过程,使得开发者能够专注于代码本身,而不是...
在本文中,我们将深入探讨如何使用Maven进行Java项目的构建和测试,以"HelloWorld"为例。Maven是一个强大的项目管理工具,它可以帮助开发者管理依赖、构建项目、执行测试,并生成文档,使得整个开发流程更加规范化和...
通过这个Hello World示例,你可以学习到Spring的基本概念和Maven的项目构建流程,这对于进一步深入学习和使用这两个工具至关重要。同时,理解如何管理和维护Maven仓库也是每个Java开发者必备的技能。
在本教程中,我们将深入探讨如何使用Maven来构建一个基本的Struts2 HelloWorld应用。 首先,我们需要确保已经安装了Java Development Kit (JDK) 和 Maven。JDK是Java编程的基础,而Maven则用于构建和管理项目。在...
【标题】"maven_hello.zip" 是一个包含 Maven 项目的压缩包,该项目主要用于构建一个名为 "maven_hello" 的 Web 应用程序。Maven 是一个强大的 Java 项目管理和综合工具,它可以帮助开发者管理依赖、构建项目以及...
【标题】"springmvc-maven-webapp-helloworld源码"是一个基于Spring MVC、Maven、MyBatis等技术构建的简单 HelloWorld 示例应用。这个项目旨在为初学者提供一个基础的Web应用程序开发框架,帮助理解这些关键技术如何...
这个“Struts2 HelloWorld示例”是一个基础的Maven项目,旨在帮助初学者理解如何在实际开发环境中设置和运行一个简单的Struts2应用。 首先,让我们了解Maven。Maven是一个项目管理工具,它通过使用一个项目对象模型...
在这个"HelloWorld"实例中,我们将深入探讨如何使用Spring 5.0 MVC和Maven构建一个基本的应用程序。 首先,让我们了解Spring MVC的核心组件: 1. **DispatcherServlet**:它是Spring MVC的前端控制器,负责接收...
在本文中,我们将深入探讨如何基于Maven构建一个SpringBoot项目,并通过解决常见的导入问题来实现"Hello, World!"的应用。SpringBoot是一个流行的Java框架,它简化了Spring应用程序的开发,而Maven则是一个强大的...
【标题】"hello-maven.zip" 是一个包含JavaFX 13与Maven集成的示例项目,适用于在IntelliJ IDEA开发环境中运行。这个压缩包旨在帮助开发者了解如何在现代Java开发中整合这两个关键工具。 【描述】"JavaFX 13 与...
【标题】"hello-maven.rar" 是一个包含Maven工程的压缩文件,它演示了如何在Web应用程序中集成Spring、MyBatis和MySQL数据库来实现书籍管理系统的增删改查功能。 【描述】该工程旨在展示如何使用Maven构建一个Java ...
RebbitMQ Hello World项目结合了Maven和RabbitMQ 3.6.6版本的jar包,为初学者提供了一个快速上手的起点。通过这个项目,你可以学习到如何配置Maven依赖,理解RabbitMQ的基本组件和工作原理,以及编写发送和接收消息...