Maven的初步使用以及命令行工具

在写本文的时候先来说明一下maven依赖的各种范围的意思
compile(编译范围)

  1. compile 是默认的范围;如果没有提供一个范围,那该依赖的范围就是编译范围。编译范围依赖在所有的classpath
    中可用,同时它们也会被打包。 provided(已提供范围)

  2. provided 依赖只有在当JDK 或者一个容器已提供该依赖之后才使用。例如,如果你开发了一个web
    应用,你可能在编译classpath 中需要可用的ServletAPI
    来编译一个servlet,但是你不会想要在打包好的WAR中包含这个ServletAPI;这个Servlet API JAR
    由你的应用服务器或者servlet
    容器提供。已提供范围的依赖在编译classpath(不是运行时)可用。它们不是传递性的,也不会被打包。

  3. runtime(运行时范围)
    runtime 依赖在运行和测试系统的时候需要,但在编译的时候不需要。比如,你可能在编译的时候只需要JDBC API JAR,而只有在运行的时候才需要JDBC驱动实现。 test(测试范围)

  4. test 范围依赖在一般的编译和运行时都不需要,它们只有在测试编译和测试运行阶段可用。测试范围依赖在之前的???中介绍过。
    system(系统范围)

system 范围依赖与provided 类似,但是你必须显式的提供一个对于本地系统中JAR
文件的路径。这么做是为了允许基于本地对象编译,而这些对象是系统类库的一部分。这样的构件应该是一直可用的,
Maven
也不会在仓库中去寻找它。如果你将一个依赖范围设置成系统范围,你必须同时提供一个systemPath元素。注意该范围是不推荐使用的(你应该一直尽量去从公共或定制的Maven仓库中引用依赖)

常用的maven命令

GroupID和ArtifactID区别

GroupID是项目组织唯一的标识符,实际对应JAVA的包的结构,是main目录里java的目录结构。指的是jar文件里面的com.xx.xx.xxx等包的名字

ArtifactID就是项目的唯一的标识符,实际对应项目的名称,就是项目根目录的名称。

一般GroupID就是填com.leafive.test这样子。指的是jar文件的名字

Maven常用命令: 
1. 创建Maven的普通java项目: 
   mvn archetype:create 
   -DgroupId=packageName 
   -DartifactId=projectName  
2. 创建Maven的Web项目:   
    mvn archetype:create 
    -DgroupId=packageName    
    -DartifactId=webappName 
    -DarchetypeArtifactId=maven-archetype-webapp    
3. 编译源代码: mvn compile 
4. 编译测试代码:mvn test-compile    
5. 运行测试:mvn test   
6. 产生site:mvn site   
7. 打包:mvn package   
8. 在本地Repository中安装jar:mvn install 
9. 清除产生的项目:mvn clean   
10. 生成eclipse项目:mvn eclipse:eclipse  
11. 生成idea项目:mvn idea:idea  
12. 组合使用goal命令,如只打包不测试:mvn -Dtest package   
13. 编译测试的内容:mvn test-compile  
14. 只打jar包: mvn jar:jar  
15. 只测试而不编译,也不测试编译:mvn test -skipping compile -skipping test-compile 
      ( -skipping 的灵活运用,当然也可以用于其他组合命令)  
16. 清除eclipse的一些系统设置:mvn eclipse:clean  


下面来介绍maven添加本地依赖(这几个是jre/lib/ext下的jar包,在classpath下是没有的)
[html] view plaincopyprint?


<dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>compile</scope><!-- 默认的范围  经常用到的范围(会把jar包打包进去) -->
    </dependency>
  </dependencies>
<dependency>  
            <groupId>dnsns</groupId>  
            <artifactId>dnsns</artifactId>  
            <version>1.0</version>  
            <scope>system</scope>  
            <systemPath>${project.basedir}/src/lib/dnsns.jar</systemPath>  
        </dependency>  
        <dependency>  
            <groupId>localedata</groupId>  
            <artifactId>localedata</artifactId>  
            <version>1.0</version>  
            <scope>system</scope>  
            <systemPath>${project.basedir}/src/lib/localedata.jar</systemPath>  
        </dependency>  
        <dependency>  
            <groupId>sunjce_provider</groupId>  
            <artifactId>sunjce_provider</artifactId>  
            <version>1.0</version>  
            <scope>system</scope>  
            <systemPath>${project.basedir}/src/lib/sunjce_provider.jar</systemPath>  
        </dependency>  
        <dependency>  
            <groupId>sunpkcs11</groupId>  
            <artifactId>sunpkcs11</artifactId>  
            <version>1.0</version>  
            <scope>system</scope>  
            <systemPath>${project.basedir}/src/lib/sunpkcs11.jar</systemPath>  
        </dependency>  
我把他们放在工程下的src/lib下面 所以是
[html] view plaincopyprint?
${project.basedir}/src/lib/sunpkcs11.jar  
当然我们也可以规定自己的路径来实现依赖的引用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一缕阳光直射你的心扉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值