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

mvn 摘要

阅读更多

mvn将项目分为5个阶段(lifecycle):准备、编译(complie)、测试、部署、运行

下载配置maven:

详细过程网上都会有。

1.1 user
对指定用户的配置。user configuration可以在${user.home}/.m2/settings.xml中指定。注:该文件不是必须的,当该文件找不到时,maven会使用默认的配置。

关于该文件的具体配置可以参考:http://maven.apache.org/ref/2.0.4/maven-settings/settings.html

1.2 配置代理
在maven2.0中,代理服务器上网,可以为http request配置代理。同样在user configuration中配置,配置如下:

     <proxy>
      <id>optional</id>
      <active>true</active>
      <protocol>http</protocol>
      <username>proxyuser</username>
      <password>proxypass</password>
      <host>www.hc360.com</host>
      <port>80</port>
      <nonProxyHosts>local.net,some.host.com</nonProxyHosts>
    </proxy>

详见:http://maven.apache.org/guides/mini/guide-proxies.html

1.3 安全和部署配置
在一个project中,该项目将要使用哪个Repository,是在setting.xml中指定的。然而,你却不能将用户名和

码以及其它的安全设定也放在该project中。因此,你可能会在你自己的设定中定义一个server,给它指定一个id, 该id
与project将要使用那个Repository相对应。

另外,有些repository在下载时可能需要用户名和密码,这些也可以在server element中以相同的方式指定。配置如下
    <server>
      <id>deploymentRepo</id>
      <username>repouser</username>
      <password>repopwd</password>
    </server>

1.4 mavenplugins for eclipse
通过eclipse安装的url为http://m2eclipse.sonatype.org/update/ ,可以去官方网站上查询。

配置:在window-->references-->Java-->build path-->classpath variables,按"New",名字为:M2_REPO  创建一个目录,指向当前的资源库:C:\Documents and Settings\pengch\.m2\repository

要注意的部分:设置maven的主目录的名称为:M2_HOME。从服务器下载的jar库默认是: ${user.home}/.m2/repository/下,我的${user.home}值为:C:\Documents and Settings\Administrator,初始配置是在:%M2_HOME%\bin\m2.conf文件中可见到。如果要修改resposity 的值:

有两种方法:%M2_HOME%\conf/settings.xml中的字段为:<localRepository>实际的物理地 址</localRepository>,如<localRepository>E:\maven\.m2 \repository</localRepository>

另一种方法是:用artifactory来建立maven的本地的repository。本人没有试用过。(以下转自:http://www.iteye.com/topic/98480

官方的maven repository服务器特别的慢,还记得上次海底电缆事故么?官方的服务器根本就无法访问,那段时间简直要抓狂。并且官方服务器类库版本通常不是最 新,有时候想用最新版的还得自己动手。(下面会介绍如何自己动手做),所以建立一个自己的本地代码服务器对于整个团队就特别有意义。

Maven的服务器很简单,一个普通的http服务器就行,比如apache,装好apache以后。

将你本地代码库文件夹拷贝到apache安装目录下htpdocs/maven2,windows用户是C:\Documents and Settings\jeffrey\.m2\repository,linux下是 /home/Jeffrey/.m2/repository(注意.m2在linux下是隐藏文件夹)

启动apache服务器,在浏览器中输入http://localhost/maven2/repository ,应该可以查看到repository的文件目录

编辑项目pom,指定本地的代码库服务器

在project中加入:

 

xml 代码

<repositories>  
  <repository>  
    <id>mylibsid>  
    <url>http://localhost/maven2/repositoryurl>  
  repository>  
repositories>

可以加入多个repository,mvn会按照顺序检索,如果都没有找到,最后会去找官方的服务器。(转完)

maven 常用命令组合:
创建:mvn archetype:create -DgroupId=com.oreilly -DartifactId=app

文件夹结构:

app

---com

------oreilly

创建Maven的普通java项目:mvn archetype:create -DgroupId=com.codeline.commons -DartifactId=pjoName    
创 建Maven的Web项目:mvn archetype:create -DgroupId=com.mycompany.app -DartifactId=my-webapp -DarchetypeArtifactId=maven-archetype-webapp   

编译:
cd app;

mvn compile

编译测试用例:Compiling Test Sources and Running Unit Tests

mvn test;

mvn test will always run the compile and test-compile phases first, as well as all the others defined before it.

打包,
Packaging and Installation to Your Local Repository

Making a JAR file is straightforward and can be accomplished by executing the following command:

C:\app> mvn package

将生成的文件添加到本地类库中
Now, you'll want to install the artifact (the JAR file) you've generated into your local repository. It can then be used by other projects as a dependency. The directory <user_home>/.m2/repository isthe default location of the repository.

To install, execute the following command:

C:\app> mvn install

maven代码库的文件目录组织方式,同一个jar对于每个版本都有一个独立的文件夹来存放,除了jar还要有该jar的描述文件.pom,以及他们的校验文件.sh1

.pom文件里定义了该jar的名称、版本以及该jar所依赖到的其他jar(这也就是为什么引入一个jar却带出一大堆的jar来)

最简单的pom如下:

xml 代码

xml version="1.0" encoding="UTF-8"?>  
<project>  
    <modelVersion>4.0.0modelVersion>  
    <groupId>net.jeffreygroupId>  
    <artifactId>xxxartifactId>  
    <version>1.0version>  
    <dependencies>  
    dependencies>  
project>  
         为jar和pom生成校验文件

         可以通过一个ant任务来做:

xml 代码

  
<target name="checksum" description="Generate checksum file for jar and pom">  
       <checksum algorithm="SHA" fileext=".sha1">  
           <fileset dir="d:/javalib" id="id">   
              <include name="**/*.pom" />  
              <include name="**/*.jar" />  
              <include name="**/*.xml" />  
              <exclude name="**/*.sh1" />  
           </fileset>  
       </checksum>  
</target>

把生成好的sh1文件和jar、pom按照前面介绍的结构布局拷贝到apache的代码库中,当然你也可以直接拷到本地代码库中。

(转自:http://fluagen.blog.51cto.com/146595/40086

在安装hibernate的架包时告诉我jta无法下载。要求本地化安装,给出的提示如下:
1) javax.transaction:jta:jar:1.0.1B
Try downloading the file manually from:http://java.sun.com/products/jta.Then, install it using the command:
mvn install:install-file -DgroupId=javax.transaction -DartifactId=jta \  -Dversion=1.0.1B -Dpackaging=jar -Dfile=/path/to/filePath to dependency:
1) com.efn:mywebapp:war:1.0-SNAPSHOT
2) org.hibernate:hibernate:jar:3.1rc2
3) javax.transaction:jta:jar:1.0.1B
----------
1 required artifact is missing.for artifact: com.efn:mywebapp-1.0-SNAPSHOT.war这个提示是说可以先到sun的网站下载jta架包,然后采用命令行的方式按要求安 装,因为我本来就有此架包,于是拷到一个方便的位置,比如c:\,然后在命令行下输入:
mvn install:install-file -DgroupId=javax.transaction -DartifactId=jta -Dversion=1.0.1B -Dpackaging=jar -Dfile=C:/jta.jar
执行完毕后,一切OK!

(转完)

其他命令:
不需任何附加工作maven依靠此POM就可以为你的项目产生一个网站,你只须定制你的maven网站,如果时间紧迫,你只须执行以下命令:

mvn site

还有许多goals可以执行,比如

mvn clean

此命令删除target目录。

可能你需要为你的项目产生一个IntelliJ IDEA 描述符,执行以下命令:

mvn idea:idea

 

组合使用goal命令,如只打包不测试:mvn -Dtest package    
编译测试的内容:mvn test-compile   
只打jar包: mvn jar:jar   
只测试而不编译,也不测试编译:mvn test -skipping compile -skipping test-compile (这里要特别注意 -skipping 的灵活运用,当然也可以用于其他组合命令)   
清除eclipse的一些系统设置:mvn eclipse:clean

注意事项:
当建立一个工程后,执行 mvn eclipse:eclipse,则会产生eclipse的工程文件,但是第一次用eclipse打开工程后,发现报如下错误:Unbound classpath variable: 'M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar' in project my-webapp ,需要在Eclipse 中配置 M2_REPO 变量,配置步骤:window >> preferences >> Java >> Build Path >> Classpath Variables
新建一个 M2_REPO 的变量,变量值指向你系统的Maven2的数据仓库位置

将资源文件(.resources)加入
如何在jar文件中加入资源?

在示例应用程序中,增加目录${basedir}/src/main/resources,我们把资源文件放入此目录。任何在${basedir}/src/main/resources目录中的文件和目录都将被打包到jar文件中。

my-app

|-- pom.xml

`-- src

    |-- main

    |   |-- java

    |   |   `-- com

    |   |       `-- mycompany

    |   |           `-- app

    |   |               `-- App.java

    |   `-- resources

    |       `-- META-INF

    |           `-- application.properties

    `-- test

        `-- java

            `-- com

                `-- mycompany

                    `-- app

                        `-- AppTest.java

在这个例子中,我们在${basedir}/src/main/resources目录下放了一个META-INF目录并在META-INF目录中放了一个application.properties文件。如果你将jar文件解压,可以看到以下内容:

|-- META-INF

|   |-- MANIFEST.MF

|   |-- application.properties

|   `-- maven

|       `-- com.mycompany.app

|           `-- my-app

|               |-- pom.properties

|               `-- pom.xml

`-- com

    `-- mycompany

        `-- app

            `-- App.class

就像你看到的那样,${basedir}/src /main/resources中的内容在jar文件的起始位置,我们的application.properties文件在META-INF目录下。同 时,一些其他文件如META-INF/MANIFEST.MF,以及pom.xml和pom.properties文件也在其中,对于maven产生的 jar文件来说,这是maven的标准行为。你可以自行创建自己的manifest,不过如果你不指定,maven会产生一个默认的。由于pom.xml 和pom.properties文件都被打包到jar文件中,所以maven产生的产品都是自描述的,一个简单的应用就是获得应用程序版本。打开POM文 件可能需要一些maven的工具,但打开属性文件可以使用标准的java API来做到,属性文件pom.properties如下所示:

#Generated by Maven

#Tue Oct 04 15:43:21 GMT-05:00 2005

version=1.0-SNAPSHOT

groupId=com.mycompany.app

artifactId=my-app

为了单元测试,可能需要把资源加入到classpath,你可以遵照同样的模式:

my-app

|-- pom.xml

`-- src

    |-- main

    |   |-- java

    |   |   `-- com

    |   |       `-- mycompany

    |   |           `-- app

    |   |               `-- App.java

    |   `-- resources

    |       `-- META-INF

    |           |-- application.properties

    `-- test

        |-- java

        |   `-- com

        |       `-- mycompany

        |           `-- app

        |               `-- AppTest.java

        `-- resources

            `-- test.properties

那么在测试代码中,只须使用如下代码就可访问这些资源:

...

// Retrieve resource

InputStream is = getClass().getResourceAsStream( "/test.properties" );

// Do something with the resource

...

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/liu251/archive/2008/08/04/2767188.aspx

分享到:
评论

相关推荐

    Maven常用命令大全与pom文件讲解

    摘要:本文主要讲解是Maven使用过程中一些常用的命令,并配上图片说明,最后还讲了pom.xml文件的一些构造。-D传入属性参数-P使用pom中指定的配置-e显示maven运行出错的信息-o离线执行命令,即不去远程仓库更新包-X...

    geoserver源码入门(一)–建立Eclipse工程

    摘要:本文介绍geoserver源码的maven构建过程,然后导入到Eclipse并成功运行的步骤。 环境准备:JDK1.8,Eclipse 2018-12(4.10.0),apache-maven-3.6.0(安装配置方法见我的另外一篇博客) 步骤: 1、下载geoserver...

    apache-maven-3.6.3.zip

    4. **项目信息管理**:通过 POM.xml 文件,Maven 能够生成项目报告,如Javadoc、项目信息摘要、依赖树等。 5. **多模块项目支持**:Maven 支持多个子项目组成的一个父项目,方便大型项目的管理。 `apache-maven-...

    e-commerce:电子商务应用

    设置摘要配置依存关系数据库配置如何进行测试部署说明贡献准则编写测试代码审查其他指引我要和谁说话? 回购所有者或管理员其他社区或团队联系人### Maven命令说明mvn --version打印出您正在运行的Maven的版本。 ...

    rm-sample-service:该微服务管理调查样本

    一旦使用/存储了上面发送的样本单位,就从Party服务接收确认,并将样本摘要标记为准备好进行收集 根据要求,将与给定条件匹配的样本摘要提供给“收集练习”服务 跑步 有两种方法可以运行此服务 最简单的方法是通过...

    matlab开发-simulategroupdatafromsummarystats.zip.zip

    例如,使用`mle`函数进行最大似然估计以确定数据的精确分布参数,或者使用`mvn`函数处理多变量分布的问题。 总之,MATLAB的`simulategroupdatafromsummarystats`涉及的关键知识点包括统计摘要数据的理解、各种...

    spring-security-example

    Dspring.profiles.active=basic"使用curl启动客户端curl -u user:pwd http://localhost:8080/ping使用httpie启动客户端http -ba user:pwd http://localhost:8080/ping摘要式身份验证启动应用程序mvn spring-...

    octosql:OctoSQL是一种查询工具,可让您使用SQL联接,分析和转换来自多个数据库和文件格式的数据

    考虑每个国家/地区实时摘要的每小时唯一用户数。 目录 什么是OctoSQL? OctoSQL是一种SQL查询引擎,可让您对存储在多个SQL数据库,NoSQL数据库,流源和各种格式的文件中的数据进行标准SQL查询,以尝试将尽可能多的...

    where-am-i-server:使用Wi-Fi信号信息实施和测试室内位置算法

    我在哪里 动机 这是一个免费的协作平台,旨在帮助研究人员使用Wi-Fi信号信息测试和开发...这是实体的简短摘要。 让我们从Localization开始。 该实体代表地图上的一个点,就像您在卫星视图中的家一样。 在您的家里,您有

    todo-dw:使用Dropwizard的演示实践Todo应用

    待办事项 一个待办事项(是另一个)应用程序来练习/演示新框架等。 怎么跑 该应用程序基于Java,并使用maven进行构建/运行。...输入框将使用您输入的摘要创建一个新的待办事项。待办事项列表按最重要的顺

    java-svc:Java可维护性示例。 包括用于jmc,jfr,attach,jmx,jplis,jdi和perfcounters的简单示例应用程序

    这些示例易于构建和运行,并且易于摘要。 每个人都应该尝试这些甚至相对没有经验的开发人员。 更不用说我需要一个适合幻灯片的示例进行演讲。 ;) 先决条件 所有项目都可以使用JDK11构建,并且大多数项目也可以基于...

    B3LOG Solo v1.0.0 for MySQL.zip

    B3LOG Solo 是一个专业、简约、稳定、极速的开源 Java 博客系统。 java开源博客 -- B3LOG Solo 从 0.4.1 开始,正式同时支持 GAE 平台与常规 Servlet 容器。...161 使用 mvn 插件统一 Java 格式化

    maven简便方法跳过打包检查

    摘要:我们在使用maven打包,正式环境一般使用的是内网数据库,所以按照原来的打包检测就是行不通的,因为你在本地是连接不上内网的。这里给出一个超简便的方法。 方法一:也是网上最普遍的方法,重写一个插件的配置...

    apache-maven-3.3.3

    4. **项目信息管理**:Maven 可以生成项目报告,如Javadoc、源码、项目信息摘要等,便于团队协作和文档维护。 5. **多模块项目支持**:大型项目通常由多个子项目组成,Maven 可以轻松管理这些子项目,通过聚合模块...

    moltimate-后端:一种蛋白质活性位点比对工具

    mvn spring-boot:run 清除本地数据库 要擦除数据库, moltimate.mv.db在项目的根目录处删除生成的文件moltimate.mv.db 。 API摘要 这简要总结了所有API端点。 对齐方式 HTTP方法 终点 功能 开机自检 使蛋白质活性...

    Centos下Jenkin部署及基本构建

    检测是否安装成功可以使用mvn –v命令。 3. 安装SVN客户端:使用yum install -y subversion命令安装SVN客户端。检测是否安装成功可以使用svn --version命令。 4. 安装Git客户端:检测是否安装成功可以使用git --...

    nashorn-react-jmh-microbenchmark:Java Microbenchmark Harness(jmh)测试,用于使用Java 8的Nashorn在服务器端呈现简单的react组件

    运行基准编制基准$ mvn clean install 构建完成后,您将获得独立的可执行文件JAR(该文件将保存您的基准测试)以及所有必要的JMH基础结构代码。 运行ReactMicroBenchmark $ java -jar target/benchmarks.jar性能结果...

    portal-marketplace

    Acumos门户市场该存储库保存的项目一起构成了Acumos平台的Marketplace后端和Frontend。构建先决条件JDK 1.8 Spring STS 3.8.x... 设置摘要配置依存关系数据库配置如何进行测试部署说明贡献准则编写测试代码审查其他指引

    HRAts:HRAts是一个开源项目,创建该项目是为了支持招聘流程,支持公司的业务流程

    设置摘要在Java 7,PostgreSQL 9.1,Spring 4.1.6,Spring Security 3.2.7和AngularJS 1.3.15上运行配置它需要的是一个数据库连接和电子邮件服务器,应用程序将从该数据库和电子邮件服务器发送注册令牌依存关系需要...

    counter:计算端点发生热点的次数

    GET / chargingSessions / summary-检索最近60秒内提交的充电会话的摘要 主机: 如何运行项目 运行命令: mvn spring-boot:run在父项目文件夹中 sessionstore-0.0.1-SNAPSHOT.jar文件的java -jar路径(存在于目标...

Global site tag (gtag.js) - Google Analytics