看懂MAVEN的结构目录
2019-04-26 本文已影响0人
浪尖的游鱼
MAVEN作为一个项目管理工具,已经成为了大多数JAVA开发人员的利器。尽管MAVEN不仅仅针对JAVA
MAVEN的目录结构规范
目录 目的
${basedir} 存放pom.xml和所有的子目录
${basedir}/src/main/java 项目的java源代码
${basedir}/src/main/resources 项目的资源,比如说property文件,springmvc.xml
${basedir}/src/test/java 项目的测试类,比如说Junit代码
${basedir}/src/test/resources 测试用的资源
${basedir}/src/main/webapp/WEB-INF web应用文件目录,web项目的信息,比如存放web.xml、本地图片、jsp视图页面
${basedir}/target 打包输出目录
${basedir}/target/classes 编译输出目录
${basedir}/target/test-classes 测试编译输出目录
Test.java Maven只会自动运行符合该命名规则的测试类
~/.m2/repository Maven默认的本地仓库目录位置
pom.xml
举例内容是之前测试storm的一个测试项目··
<?xml version="1.0" encoding="UTF-8"?>
<!-- xml声明,包括版本和编码方式 -->
<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/xsd/maven-4.0.0.xsd">
<!-- xmlns,xml的默认命名空间;xmlns:xsi,自定义前缀的命名空间;xsi:schemaLocation,由一个URI引用对组成,两个URI之间以空白符分隔。第一个URI是名称空间的名字,第二个URI给出模式文档的位置,模式处理器将从这个位置读取模式文档,该模式文档的目标名称空间必须与第一个URI相匹配。 -->
<modelVersion>4.0.0</modelVersion>
<!-- 指定了当前pom.xml版本 -->
<groupId>Ocango</groupId>
<!-- <groupId>反写公司网址+项目名</groupId>:主项目标识,用于显示此项目属于哪个主项目下。 -->
<artifactId>storm_test</artifactId>
<!-- <artifactId>项目名+模块名</artifactId>:此项目属于主项目中的某个模块 -->
<version>1.0-SNAPSHOT</version>
<!-- 例如:
当前项目的版本号0.0.1: 。
第一个0标识大版本号;
第二个0表示分支版本号;
第三个0表示小版本号 。
版本类型:
snapshot:快照
alpha:内部测试
beta:公测
release:稳定
GA:正式发布 -->
<!-- <packaging></packaging>:Maven项目打包的方式。默认是jar,还可以打包为war、pom、zip。-->
<!-- 依赖列表: 参考 https://blog.csdn.net/codejas/article/details/79490030 -->
<dependencies>
<dependency>
<groupId>org.apache.storm</groupId>
<artifactId>storm-core</artifactId>
<version>0.10.0</version>
<scope>provided</scope><!-- :依赖的范围,provided不参与打包 -->
<!-- <optional></optional>:有true、false两个值,默认是false;意思为:设置依赖是否可选。如果为true,则子项目必须显式引入此依赖。
<exclusions>:排除传递依赖的列表
<exclusion></exclusion>:
</exclusions> -->
</dependency>
</dependencies>
<!-- 为构建行为提供支持: -->
<build>
<plugins> <!-- :插件列表 https://www.cnblogs.com/zhangxh20/p/6298062.html -->
<plugin>
<!-- 使用编译器的定义,比如jdk版本等 -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<!-- 用于把多个jar包,打成1个jar包 -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
<configuration>
<finalName>uber-storm_test-1.0</finalName>
</configuration>
</plugin>
</plugins>
</build>
<!-- 聚合运行多个的maven项目: -->
<!-- <modules>
<model></model>
</modules> -->
</project>
以上至此