Maven开始—2.3 编译应用资源

如同前面介绍所提到的,为了完成需要的任务,你在一个非常高的层次,以一种显示的方式告诉maven你所需要的。在你敲命令来编译你的应用资源之前,注意在maven的基本原则

  • 方便配置
  • 重用构建逻辑
  • 显示执行
  • 组织所需要的相关依赖
这些原则是maven方方面面根深蒂固的,但是下面命令的分析,将告诉你这4个基本原则的动作和弄清他们在简化项目开发的重要性。
进入my-app目录,这个目录是一个根目录,${basedir}是my-app的根目录。 然后,让你一举编译整个应用资源所用到的是如下命令
mvn compile

执行了命令之后,你会看到类似的输出如下:
</pre><pre name="code" class="html">[INFO--------------------------------------------------------------------
[INFO] Building Maven Quick Start Archetype
[INFO] task-segment: [compile]
[INFO]-------------------------------------------------------------------
[INFO] artifact org.apache.maven.plugins:maven-resources-plugin: checking for updates from central
...
[INFO] artifact org.apache.maven.plugins:maven-compiler-plugin: checking for updates from central
...
[INFO] [resources:resources]
...
[INFO] [compiler:compile]
Compiling 1 source file to c:\mvnbook\my-app\target\classes
[INFO]-------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO]-------------------------------------------------------------------
[INFO] Total time: 3 minutes 54 seconds
[INFO] Finished at: Fri Sep 23 15:48:34 GMT-05:00 2005
[INFO] Final Memory: 2M/6M
[INFO]-------------------------------------------------------------------

现在,让我们剖析一下这里面都发生了什么,maven的四个原则在执行过程是如何应用的。
Maven如何知道去哪里找到项目的源文件并编译他们的?maven如何知道哪里来放置编译好的类呢?这就是maven原则之一:方便配置的表现了。默认的情况下,应用资源放置在src/main/java目录下,这个默认值(在pom中并不可见)其实是继承于上一层次POM的。 甚至最简单的POMs知道放置应用资源的位置。如果你使用了默认的配置,这意味着你不需要在所有POM内配置所有的位置。当然,你可以重写这些默认的位置,当然了,除非必要一般也不必这么做。编译的类,默认扔到target/classes文件夹下。
编译应用资源的过程中发生了什么呢?这是maven准则之一——重用构建逻辑扮演的部分了。标准的编译器plugin,和它默认的配置,是在你编译应用资源使用的工具。封装在编译器plugin中的构建逻辑,将会持续的生成项目。
尽管你现在知道编译器插件用来编译应用资源,那么maven是如何决定使用编译器空间的呢?你或许认为有某一个后台进行用来映射命令到制定的空间,实际上呢,有一个映射的表,叫做maven默认的构建生命周期。
所以你知道maven去哪里找到应用资源了,maven用什么来编译应用资源和maven如何调用编译器插件的。下一个问题就是maven如何检索编译器插件的。毕竟,如果你使用标准的maven安装,你肯定不会发现编译器插件的,如果它没有附带在maven的发布中。想法,maven下载他们所需要的控件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值