maven 基础

编写主代码
1 在绝大多数情况下,应该把项目主代码放到src/main/java 目录下(遵循maven的约定),而无需额外的配置。maven会自动搜寻该目录找到项目的主代码,其次主代码的包名应该基于groupId和artifactId,这样更加清晰和符合逻辑方便搜索构件或者java类。

2我们执行maven clean install 命令  
clean 告诉maven清除输出目录target/,compile 告诉maven编译项目主代码
我们运行命令发现首先执行clean:clean任务删除target/目录。默认情况下,maven构建的所有输出都在target目录下;接着执行resources:resources任务
最后执行compiler:compile将项目主代码编译至target/classes目录下面。


编写测试代码:
1在maven项目中默认的测试代码目录是:src/test/java因此在编写测试用例之前首先创建该目录。
2我们执行mvn clean test命令
maven实际执行的任务为:
clean:clean  resources:resources compiler:compile  resources:testResources compiler:testCompile  surefire:test  它会先自动执行
项目主资源处理,主代码编译,测试资源处理,测试代码编译,运行测试用例并且输出测试报告工作,这是maven的生命周期的一个特性。


注意:
我们如果在代码中引用了注解,需要配置compiler插件,compiler插件默认只支持编译Java 1.3因此需要配置该插件支持1.5
具体配置如下:
<build>
         <finalName>myth</finalName>
        <plugins>
               <!-- maven compiler plugin -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>               <!-- maven compiler plugin -->
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                    <encoding>utf-8</encoding>
                </configuration>
              </plugin>
        </plugins>
    </build>

打包和执行:
mvn clean package 打包
首先它会执行编译和测试,然后调用jar插件的jar目标奖项目打成一个jar文件。他是根据artifact-version.jar规则来进行命名的。如果pom中没有指定默认为jar。
mvn clean install 
如果我们要让其他maven项目直接引用到jar包我们需要执行mvn clean install ,它负责将构件安装至本地仓库,它也会首先执行编译,测试和打包。

默认打包生成的jar是不能够直接运行的。因为带有main方法的类信息不会添加至manifest中(打开jar文件中的 META-INF/MANIFEST.MF无法看到Main-Class行为,我们可以使用maven-shade-plugin生成可执行的jar文件
我们需要配置maven-shade-plugin插件
  1. <plugin>     
  2.     <groupId>org.apache.maven.plugins</groupId>     
  3.     <artifactId>maven-shade-plugin</artifactId>     
  4.     <version>1.2.1</version>     
  5.     <executions>     
  6.         <execution>     
  7.             <phase>package</phase>     
  8.             <goals>     
  9.                 <goal>shade</goal>     
  10.             </goals>     
  11.             <configuration>     
  12.                 <transformers>     
  13.                     <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">         
  14.                          <mainClass>com.taobao.wireless.test.tools.wf.WirelessDemandReport</mainClass>     
  15.                     </transformer>     
  16.                 </transformers>     
  17.             </configuration>     
  18.         </execution>     
  19.       </executions>     
  20. </plugin>  
我们可以调用java -jar target \hello-world-1.0-SNAPSHOT.jar来运行可执行jar.

使用Archetype生成项目骨架
mvn archetype:generate -DgroupId=com.alifi.training.helloworld -DartifactId=training.helloworld.web.webx -Dversion=1.0.0-SNAPSHOT -Dpackage=training.helloworld.web.webx -DarchetypeArtifactId=archetype-webx3-quickstart   -DarchetypeGroupId=com.alibaba.platform.shared  -DarchetypeCatalog=http://repo.alibaba-inc.com/mvn/ -DinteractiveMode=false

或者 mvn archetype:generate    选择archetype ,创建项目骨架。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值