maven学习-查看文章

maven学习

发表于:2017-06-27 08:57:14 分类:JAVA 阅读:537次

昨天简单学习了一下maven,记录一下。

主要作用:规范目录结构;托管jar包。


关键目录结构:

src/main/java 项目的源代码所在的目录

src/main/resources 项目的资源文件所在的目录

src/main/filters 项目的资源过滤文件所在的目录

src/main/webapp 如果是web项目,则该目录是web应用源代码所在的目录,比如html文件和web.xml等都在该目录下。

src/test/java 测试代码所在的目录

src/test/resources 测试相关的资源文件所在的目录

src/test/filters 测试相关的资源过滤文件所在的目录

上面的目录结构,我们接触的比较多,而下面的这些目录结构,用的相对不是很多:


src/it 集成测试代码所在的目录,主要是供别的插件使用的。

src/assembly 组件(Assembly)描述符所在的目录

src/site 站点文件

LICENSE.txt 项目的许可文件

NOTICE.txt 该项目依赖的库的注意事项

README.txt 项目的readme文件

在一个Maven项目中,在项目根目录下,除了包含了上面约定的目录结构中的部分目录外,还包含了项目描述文件,pom.xml文件。

在根目录下,主要有两个目录,分别是src 和target 目录,除此之外,还会有一些版本控制系统的元数据文件,包括git的.gitignore 或者svn的.svn 。如果一个项目时由多个子项目组成的,那么在该项目的根目录下,还会包含它的子项目的目录。子项目的目录布局,默认也是和上面列出的目录结构一致的。


target 目录,这个目录主要用于存放项目构建的输出文件,比如class文件以及打包后的包文件等。


在src 目录下,包含了项目所有的源代码和资源文件,以及其他项目相关的文件。在该目录的main 目录下,包含了构建该项目的artifact(可以理解为时项目的程序部分)所需的代码和资源,而test 目录包含了测试相关的代码和资源文件。


pom.xml样例,来自老王的码码在线:

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <packaging>war</packaging> <name>mvn-demo</name> <groupId>top</groupId> <artifactId>aiprogram</artifactId> <version>1.0-SNAPSHOT</version> <properties>  <spring.version>4.1.4.RELEASE</spring.version>  <mybatis.version>3.2.8</mybatis.version>  <slf4j.version>1.7.7</slf4j.version>  <log4j.version>1.2.17</log4j.version> </properties> <dependencies>  <dependency>   <groupId>org.springframework</groupId>   <artifactId>spring-core</artifactId>   <version>${spring.version}</version>  </dependency>  <dependency>   <groupId>org.springframework</groupId>   <artifactId>spring-context</artifactId>   <version>${spring.version}</version>  </dependency>  <!-- 添加spring-tx包 -->  <dependency>   <groupId>org.springframework</groupId>   <artifactId>spring-tx</artifactId>   <version>${spring.version}</version>  </dependency>  <!-- 添加spring-jdbc包 -->  <dependency>   <groupId>org.springframework</groupId>   <artifactId>spring-jdbc</artifactId>   <version>${spring.version}</version>  </dependency>  <!-- 为了方便进行单元测试,添加spring-test包 -->  <dependency>   <groupId>org.springframework</groupId>   <artifactId>spring-test</artifactId>   <version>${spring.version}</version>  </dependency>  <!--添加spring-web包 -->  <dependency>   <groupId>org.springframework</groupId>   <artifactId>spring-web</artifactId>   <version>${spring.version}</version>  </dependency>  <dependency>   <groupId>org.springframework</groupId>   <artifactId>spring-webmvc</artifactId>   <version>${spring.version}</version>  </dependency>  <dependency>   <groupId>org.springframework</groupId>   <artifactId>spring-aop</artifactId>   <version>${spring.version}</version>  </dependency>  <dependency>   <groupId>org.springframework</groupId>   <artifactId>spring-context-support</artifactId>   <version>${spring.version}</version>  </dependency>  <!--添加aspectjweaver包 -->  <dependency>   <groupId>org.aspectj</groupId>   <artifactId>aspectjweaver</artifactId>   <version>1.8.5</version>  </dependency>  <!-- 添加mybatis的核心包 -->  <dependency>   <groupId>org.mybatis</groupId>   <artifactId>mybatis</artifactId>   <version>${mybatis.version}</version>  </dependency>  <!-- 添加mybatis与Spring整合的核心包 -->  <dependency>   <groupId>org.mybatis</groupId>   <artifactId>mybatis-spring</artifactId>   <version>1.2.2</version>  </dependency>  <!-- 添加servlet3.0核心包 -->  <dependency>   <groupId>javax.servlet</groupId>   <artifactId>javax.servlet-api</artifactId>   <version>3.0.1</version>  </dependency>  <dependency>   <groupId>javax.servlet.jsp</groupId>   <artifactId>javax.servlet.jsp-api</artifactId>   <version>2.3.2-b01</version>  </dependency>  <!-- jstl -->  <dependency>   <groupId>javax.servlet</groupId>   <artifactId>jstl</artifactId>   <version>1.2</version>  </dependency>  <!-- 添加mysql驱动包 -->  <dependency>   <groupId>mysql</groupId>   <artifactId>mysql-connector-java</artifactId>   <version>5.1.34</version>  </dependency>  <!-- 添加druid连接池包 -->  <dependency>   <groupId>com.alibaba</groupId>   <artifactId>druid</artifactId>   <version>1.0.12</version>  </dependency>  <!-- 日志文件管理包 -->  <!-- log start -->  <dependency>   <groupId>log4j</groupId>   <artifactId>log4j</artifactId>   <version>${log4j.version}</version>  </dependency>  <!-- 格式化对象,方便输出日志 -->  <dependency>   <groupId>com.alibaba</groupId>   <artifactId>fastjson</artifactId>   <version>1.1.41</version>  </dependency>  <dependency>   <groupId>org.slf4j</groupId>   <artifactId>slf4j-api</artifactId>   <version>${slf4j.version}</version>  </dependency>  <dependency>   <groupId>org.slf4j</groupId>   <artifactId>slf4j-log4j12</artifactId>   <version>${slf4j.version}</version>  </dependency>  <!-- log end -->  <!-- 映入JSON -->  <dependency>   <groupId>org.codehaus.jackson</groupId>   <artifactId>jackson-mapper-asl</artifactId>   <version>1.9.13</version>  </dependency>  <!-- 上传组件包 -->  <dependency>   <groupId>commons-fileupload</groupId>   <artifactId>commons-fileupload</artifactId>   <version>1.3.1</version>  </dependency>  <dependency>   <groupId>commons-io</groupId>   <artifactId>commons-io</artifactId>   <version>2.4</version>  </dependency>  <dependency>   <groupId>commons-codec</groupId>   <artifactId>commons-codec</artifactId>   <version>1.9</version>  </dependency> 
  <!-- 添加junit单元测试包 -->  <dependency>   <groupId>junit</groupId>   <artifactId>junit</artifactId>   <version>4.12</version>   <scope>test</scope>  </dependency>  <dependency>   <groupId>org.mybatis.generator</groupId>   <artifactId>mybatis-generator-core</artifactId>   <version>1.3.2</version>   <scope>test</scope>  </dependency> </dependencies> 

 <build>  
   <resource>    <directory>src/main/resources</directory>    <filtering>true</filtering>   </resource>   <resource>    <directory>src/main/java</directory>    <includes>     <include>**/*.xml</include>    </includes>   </resource>  </resources>  <plugins>   <plugin>    <groupId>org.apache.maven.plugins</groupId>    <artifactId>maven-compiler-plugin</artifactId>    <configuration>     <encoding>UTF-8</encoding>     <source>1.7</source>     <target>1.7</target>    </configuration>   </plugin>  </plugins> </build></project>

这里有个坑:

maven默认编译版本为1.5,需要把里面的

<plugins>   <plugin>    <groupId>org.apache.maven.plugins</groupId>    <artifactId>maven-compiler-plugin</artifactId>    <configuration>     <encoding>UTF-8</encoding>     <source>1.7</source>     <target>1.7</target>    </configuration>   </plugin>  </plugins>

这块手动更改,否则就会陷入不停报版本不对的各种错误,更改idea的版本以及级别再编译,又会报错,并自动把idea的版本级别调到5……



关键词:maven,java


验证码:

  1. author
    吕文德(伪装者) 2017-07-05 18:01:53
    回复:欧阳峰

    2222
  2. author
    朱聪(伪装者) 2017-07-02 14:55:02
    1111
  3. author
    郭啸天(伪装者) 2017-06-27 14:27:10
  4. author
    柯镇恶(伪装者) 2017-06-27 14:27:01
  5. author
    欧阳峰(伪装者) 2017-06-27 14:27:00