maven是一个java项目管理工具,深化了ant,但又有自己一整套的项目集成策略。目前的版本是2.0.2。
1.
maven网站 下载maven2,解压缩
2.
配置环境变量:maven_home、path
3.
cmd-> mvn --version 检查是否安装成功 [显示版本号,则说明安装成功]
4.
配置,Maven的配置分为三个层次:
*
- pom.xml:针对某个项目的配置
*
Installation
*
User -针对某个用户的配置
我们首先配置主要是user级别的,主要包括两点:设置本地的资源库和代理服务器[如果需要的话] 在%maven_home%/conf/setting.xml中配置:
<localRepository>d:/repo</localRepository>
<proxy>
<id>proxy1</id>
<active>true</active>
<protocol>http</protocol>
<username></username>
<password></password>
<host>222.136.91.1</host>
<port>80</port>
<nonProxyHosts></nonProxyHosts>
</proxy>
修改之后copy一份到${home}/.m2
5.
建立新的项目
mvn archetype:create -DgroupId=com.mycompany.app -DartifactId=my-app
*
首先,程序会从远程下载必要的jar包到你的localRepository,即我们刚刚设置的[d:/repo]
*
然后,会在当前目录下面生成my-app文件夹,包括简单的包结构[java,test]和一个HelloWorld程序及测试,以及pom.xml文件。
注意:pom.xml contains the Project Object Model (POM) for this project.The POM is the basic unit of work in Maven。
6.
编译
mvn compile
第一次运行会下载很多jar包,而且机器负荷会很重。运行这个命令需要在pom.xml相同目录下面, 这个编译只编译主程序,不会编译test下面的程序。如果需要单独编译test,请运行:
mvn test-compile
compile之后会生成target文件夹,主程序编译在classes下面,测试程序放在test-classes下
7.
测试
mvn test
会自动先编译再运行测试
8.
打包
mvn package
打包之前会进行编译,测试
9.
安装
mvn install
会将package之后的jar包copy到
<local-repository>/com/mycompany/app/my-app/1.0-SNAPSHOT/my-app-1.0-SNAPSHOT.jar
10.
其他
mvn site
注意,还可以:
deploy site
在pom.xml中加入
<distributionManagement>
<site>
<id> website </id>
< url> scp://www.mycompany.com/www/docs/project/ </url>
</site>
</distributionManagement>
当然你需要设置server
mvn site-deploy
mvn clean
mvn idea:idea [为IDE工具idea生成项目文件]
11.
Resource
${basedir}/src/main/resources都会编译到jar文件中,而且该目录下的内容将直接位于jar文件的顶部。
测试用资源文件-> ${basedir}/src/test/resources,引用时如下例:
InputStream is = getClass().getResourceAsStream( "/test.properties" );
文件位于 ${basedir}/src/test/resources/test.properties。
12.
如何filter我们的资源文件
< build >
< resources >
< resource >
< directory > src/main/resources </ directory >
< filtering > true </ filtering >
</ resource >
</ resources >
</ build >
因为原来默认的filter为false所以要加上上面的代码
eg:我们在src/main/resources下面建立application.properties文件
# application.properties
application.name=${pom.name}
application.version=${pom.version}
运行:mvn process-resources 在target/classes下面的application.properties结果为:
# application.properties
application.name=Maven Quick Start Archetype
application.version=1.0-SNAPSHOT
这就是所谓的filter。当然filter还可以用其他的外部文件,不一定来自pom.xml[ ${pom.name} ]以及setting.xml[ ${settings.localRepository }]
e.g src/main/filters/filter.properties:
# filter.properties
my.filter.value=hello!
pom.xml:
< build >
< filters >
< filter > src/main/filters/filter.properties </ filter >
</ filters >
< resources >
< resource >
< directory > src/main/resources </ directory >
< filtering > true </ filtering >
</ resource >
</ resources >
</ build >
# application.properties
application.name=${pom.name}
application.version=${pom.version}
message=${my.filter.value}
这样在运行mvn process-resources 会得到类似的效果,当然我们也可以直接在pom.xml中定义:
< build >
< resources >
< resource >
< directory > src/main/resources </ directory >
< filtering > true </ filtering >
</ resource >
</ resources >
</ build >
< properties >
< my .filter.value > hello </ my.filter.value >
</ properties >
效果同样,这样就不需要外部文件了。另外filter还可以来自系统设置以及可以自定义:
# application.properties
java.version=${java.version}
command.line.prop=${command.line.prop}
13.
jar包依赖
我们在mvn install后在local repo中生成的jar包也可以被其他项目所引用
<dependency>
<groupId>com.mycompany.app</groupId>
<artifactId>my-app</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
注意scope,这里是compile,如果使用junit,scope是test。
举例说明:如果我们的project需要用到log4j包,那么我们可以 先google--"site:www.ibiblio.org maven2 log4j"。Index of /maven2/log4j/log4j 下面有maven-metadata.xml 描述了groupId,artifactId,version等等。获取了这些信息之后,你 就可以在pom.xml中添加依赖
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.12</version>
<scope>compile</scope>
</dependency>
14.
如何发布我的jar包到我的remote repository
你需要在setting.xml中间设置server:
<servers>
<server>
<id>mycompany-repository</id>
<username>jvanzyl</username>
<!-- Default value is ~/.ssh/id_dsa -->
<privateKey>/path/to/identity</privateKey>
<passphrase>my_key_passphrase</passphrase>
</server>
</servers>
然后在pom.xml中设置远程url:
<distributionManagement>
<repository>
<id>mycompany-repository</id>
<name>MyCompany Repository</name>
<url>scp://repository.mycompany.com/repository/maven2</url>
</repository>
</distributionManagement>
1.2. Maven2的Eclipse插件安装和使用
1.2.1. 安装
你可以从http://m2eclipse.codehaus.orgupdate安装Maven2的Eclipse插件,具体 安装步骤请看该网站提供的Flash Demo: http://m2eclipse.codehaus.org/Installing_Maven_2.0_plugin_for_Eclipse.html
1.2.2. 使用
该插件的使用请看该网站提供的Flash Demo: http://m2eclipse.codehaus.org/Maven_2.0_Plugin_for_Eclipse.html
关于openfan项目的Maven操作请参看后续章节。
1.3. 更多的Maven2的参考
*
Maven 网站
*
分享到:
相关推荐
在这个Java实现中,我们利用了MAVEN作为项目管理工具和OLTU库来构建OAuth 2.0服务端和客户端。同时,数据加密采用了MD5算法,以增强安全性。 首先,OAuth 2.0的核心概念包括四个角色:资源所有者(Resource Owner)...
OAuth2.0主要包括四个角色:资源所有者(User)、客户端(Client)、授权服务器(Authorization Server)和资源服务器(Resource Server)。流程大致如下: - 用户打开第三方应用并请求访问资源。 - 第三方应用...
创建新项目时,需指定完整的包路径、项目名称以及使用哪个archetype。最后,通过运行`mvn eclipse:eclipse`命令,你可以将项目转化为Eclipse项目,并在Eclipse中导入。 `pom.xml`文件是Maven项目的中心,它包含了...
Maven 是一个项目管理和理解工具,最初由 Sonatype 开发,后被 Apache 软件基金会接收并成为其顶级项目之一。它通过一系列标准的过程来管理项目的构建、报告和文档等。Maven 的设计目标是为了让开发者用明确简洁的...
在Java中实现OAuth 2.0,我们可以利用Spring Security OAuth2库,它提供了服务端(Authorization Server)和客户端(Resource Server)的支持。在提供的压缩包中,包含两个Maven项目,一个是`oauthserver`,代表了...
"resource_server"目录可能包含配置文件,使得资源服务器能够识别和验证OAuth2.0令牌。 MySQL数据库用于持久化客户端数据,如客户端ID、客户端密钥、授权范围等。"platform_base.sql"可能是数据库初始化脚本,包含...
在"security+oauth2.0 四种模式实例"中,我们通常指的是OAuth2.0的四种核心授权模式:授权码模式(Authorization Code)、简化模式(Implicit)、密码模式(Resource Owner Password Credentials)和客户端凭证模式...
同时,确保你的项目构建工具(如Maven或Gradle)中包含了Spring的相关依赖。 2. **创建Bean定义**:在Spring中,对象被称为“bean”,它们的配置通常在XML文件中完成。例如,创建一个名为`HelloWorld`的类,并在`...
如果你使用Maven或Gradle,可以在pom.xml或build.gradle文件中添加依赖。 2. **连接配置**:创建Jedis实例时,你需要提供Redis服务器的IP地址和端口号,例如: ```java Jedis jedis = new Jedis("localhost", 6379...
首先,"opensaml-java-2.0-rc1-bin.zip"是一个包含OpenSAML 2.0 Release Candidate 1的二进制包,通常包含了编译后的Java类库、必要的配置文件和示例代码。这个版本是该库的一个重要里程碑,意味着它在正式发布之前...
首先,Hadoop 2.0引入了YARN(Yet Another Resource Negotiator),这是一个资源管理器,负责分配集群中的计算和存储资源。相较于Hadoop 1.x,YARN将数据处理任务(MapReduce)与资源调度分离,提高了集群的灵活性和...
开源SCIM 2.0客户端和服务器库。 描述 特征 SCIMono为提供SCIM v2 API提供了直接支持。 支持的功能: 完全符合SCIM v2 支持以下资源:用户,组,架构 资源分页(根据SCIM规范的要求基于索引,针对自定义方案基于ID...
标题 "mgm-oss-jar-resource-bundle-1.zip" 提示我们这可能是一个与MGM(可能是某个公司或项目的缩写)相关的开源项目,它涉及到OSS(对象存储服务)和资源包管理。资源包通常包含应用程序运行所需的各类文件,如...
在实际使用中,开发者通常会将这些 jar 包添加到项目的类路径(ClassPath)中,或者如果使用的是 Maven 或 Gradle 这样的构建工具,可以通过在 pom.xml 或 build.gradle 文件中声明依赖来自动管理这些 jar 包。...
portlet技术的核心是JSR 286(Portlet 2.0)标准,它定义了portlet的生命周期、API以及与门户服务器的交互方式。portlet的主要特点是能够与其他portlet共享页面,且具有独立的配置和渲染机制。portlet有多种类型,如...
在进行Maven项目远程部署时,常常会遇到各种问题,特别是当项目中包含第三方jar包时。例如,当你试图使用mvn打包项目时,可能会遇到`dependencies.dependency.systemPath`的错误,这通常是因为Maven在打包过程中尝试...
总的来说,实现Spring Security、Spring OAuth2和Spring MVC的SSO单点登录系统,需要对这些框架有深入理解,并正确配置相应的jar包或Maven/Gradle依赖。通过这个最小化集合,开发者可以快速搭建SSO环境,然后根据...
标题中的"java连接Redis所需jedis客户端包(jedis2.7+commons-pool2)"指的是在Java环境中,为了实现与Redis数据库的交互,我们需要Jedis 2.7.2版本的jar包以及Apache Commons Pool 2.0版本的jar包。这两个包是连接...