maven 学习笔记

来源:互联网 发布:网络音频广播系统 编辑:程序博客网 时间:2024/06/03 20:20

1。作用

maven 的作用包括项目构建、项目依赖管理、版本管理、项目的站点信息描述管理。

       项目构建:1.maven有个archetype,能指定项目的生成模板。

2.生命周期

     maven对project的build有一个生命周期,这个生命周期分为三个阶段:clean,install,deploy。每个阶段内都包含多个小阶段。

依赖管理:1. 需要使用的jar包可以在pom.xml中配置。maven提供了一个本地jar仓库(这个仓库的目录在settings.xml中配置),可以供多个项目使用,方便管理。当pom.xml中配置依赖的jar包不存在时,会从远程下载。


3。maven资源文件的相关配置

构建Maven项目的时候,如果没有进行特殊的配置,Maven会按照标准的目录结构查找和处理各种类型文件。

src/main/java和src/test/java 

这两个目录中的所有*.java文件会分别在comile和test-comiple阶段被编译,编译结果分别放到了target/classes和targe/test-classes目录中,但是这两个目录中的其他文件都会被忽略掉。

src/main/resouces和src/test/resources

这两个目录中的文件也会分别被复制到target/classes和target/test-classes目录中。

target/classes

打包插件默认会把这个目录中的所有内容打入到jar包或者war包中。


有时候有些配置文件通常与.java文件一起放在src/main/java目录(如mybatis或hibernate的表映射文件)。有的时候还希望把其他目录中的资源也复制到classes目录中。这些情况下就需要在Pom.xml文件中修改配置了。

可以有两种方法:

  • 一是在<build>元素下添加<resources>进行配置。
  • 另一种是在<build>的<plugins>子元素中配置maven-resources-plugin等处理资源文件的插件。
<resources>            <resource>                <directory>src/main/java</directory>                <includes>                    <include>**/*.xml</include>                </includes>            </resource>    </resources>  
     其中resources是可以看做是容器,这个容器里面可以放很多个像resource这样的配置。而directory就是配置文件所在的路径,就拿刚才的问题说吧,咱们不可能让src/main/java下的所有文件都当做配置文件,所以就会用到includes。从英文单词角度看,include就是包含的意思,那可以想当然了,这个配置下的内容就是说src/main/java下的哪些文件要被当做配置文件。至于写**/*.xml这种格式,就不用我多说了吧


4.用maven进行jsp开发中, cannot resolve taglib with uri的解决方法

http://blog.csdn.net/zhangzehai2234/article/details/50973095


5.插件自定义绑定

将maven-clean-plugin插件的clean目标绑定到install阶段,这样,执行mvn install命令构建项目时,在install阶段之后会执行clean(当然,这算是恶搞了o(╯□╰)o)

        <plugins>            <plugin>                <groupId>org.apache.maven.plugins</groupId>                <artifactId>maven-clean-plugin</artifactId>                <executions>                    <execution>                        <phase>install</phase>                        <goals>                            <goal>clean</goal>                        </goals>                    </execution>                </executions>            </plugin>        </plugins>    </build>



错误记录:

1. maven-resources-plugin: Error loading property file

<profile>  <id>dev</id>  <activation>    <activeByDefault>true</activeByDefault>  </activation>  <build>    <filters>      <!-- 错误配置 -->      <filter>filters/DBconf-dev.properties</filter>      <!-- 正确配置, 原因:在该路径下。。。 -->      <filter>${basedir}/src/filters/DBconf-dev.properties</filter>    </filters>  </build></profile>

What happens if you put ${basedir}/src/main/filters/filter.properties? Or, does the filter file belong to a parent project by chance

原创粉丝点击