maven项目的结构为什么是这样的

maven项目的结构为什么是这样的

本文目的

   接上一篇 maven中强大的scope标签详解
   从我第一次接触maven项目时,就很好奇为什么maven项目的结构src/main/javasrc/main/resourcestargetpom.xml,如下:

src
----main
--------java   // 开发的java代码全都放在这里  
--------resources   //xml文件、配置文件等
target    // maven项目编译打包的目标目录
pom.xml   // maven项目的依赖配置

  虽然知道肯定是有个配置来指明了这些目录,但是一直不知道在哪里。最近才明白这个道理。

正文

   其实这个结构是maven的一个文件里定义的。
   我们在用maven的时候,都会指定maven的目录。比如下边这个:
在这里插入图片描述
   mavenlib包里有很多的依赖jar,会在项目使用当前maven的时候,引用进来。
   对应的/lib/maven-model-builder-3.3.3.jar包中,有个pom-4.0.0.xm文件,其中有这么一段。如下:

<build>
    <!--1.编译的目录在项目的target文件夹中-->
    <directory>${project.basedir}/target</directory>
    <!--2.源码编译后存储到target/classes文件夹中-->
    <outputDirectory>${project.build.directory}/classes</outputDirectory>
    <!--3.输出项目的名称-->
    <finalName>${project.artifactId}-${project.version}</finalName>
    <!--4.测试类源码编译后存储到/target/test-classes-->
    <testOutputDirectory>${project.build.directory}/test-classes</testOutputDirectory>
    <!--5.源码的目录/src/main/java-->
    <sourceDirectory>${project.basedir}/src/main/java</sourceDirectory>
    <scriptSourceDirectory>${project.basedir}/src/main/scripts</scriptSourceDirectory>
    <testSourceDirectory>${project.basedir}/src/test/java</testSourceDirectory>
    <resources>
      <resource>
          <!--6.项目的配置文件目录/src/main/resources-->
        <directory>${project.basedir}/src/main/resources</directory>
      </resource>
    </resources>
    <testResources>
      <testResource>
        <directory>${project.basedir}/src/test/resources</directory>
      </testResource>
    </testResources>
    <pluginManagement>
      <!-- NOTE: These plugins will be removed from future versions of the super POM -->
      <!-- They are kept for the moment as they are very unlikely to conflict with lifecycle mappings (MNG-4453) -->
       <!-- maven的这个超级pom默认引用的插件,我们所有的项目都能够继承这些,但是通过上边的提示,
 		    可以大概理解,这些插件将来会从超级pom里移除,因为看起来不够友好,有的项目开发中也会
			依赖,导致冲突-->
      <plugins>
        <plugin>
          <artifactId>maven-antrun-plugin</artifactId>
          <version>1.3</version>
        </plugin>
        <plugin>
          <artifactId>maven-assembly-plugin</artifactId>
          <version>2.2-beta-5</version>
        </plugin>
        <plugin>
          <artifactId>maven-dependency-plugin</artifactId>
          <version>2.8</version>
        </plugin>
        <plugin>
          <artifactId>maven-release-plugin</artifactId>
          <version>2.3.2</version>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>

  从上图可以看到,maven项目的结构,即从maven的这个配置中继承而来。
  下一篇文章,学习了关于maven引用依赖的时候,如果存在多次依赖的话,maven是如何做的依赖调解,maven的依赖调解机制

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

茁壮成长的凌大大

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值