看懂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>

以上至此

补充

1.

上一篇下一篇

猜你喜欢

热点阅读