Maven基本知识

Maven:

(1)管理依赖包(jar包)
    例如: 我们导入A.jar 如果A.jar依赖于B.jar 在导入A.jar时,Maven会帮我们导入B.jar
本地仓库:  本地设备上存放所有jar包的地方
中央仓库:  在远程服务器上存放jar包的地方
中央仓库镜像:
  导jar包的过程,先从中央仓库中查找,如果有,直接用,如果没有,从中央仓库中导出.
私服:公司塔建了一个服务器.在该服务器上存放一些常用的jar包,当从本地仓库查找不到,可以使用公司服务器上的jar包.
(2)将项目模块化
    在A项目中完成Dao层,在B项目中完成Service层,在C项目中完成表现层(UI)
    在实际开发中service要依赖于Dao, Controller依赖于Service.
  将Dao层所在的项目构建于本地仓库中,在Service层构建Dao的依赖包,在Service中可以使用Dao项目中的功能.
(3)Maven项目架构
 src
  main
   java——-java源文件
   resource—-资源文件和配置文件
  test
   java
   resource
(4)Maven的依赖配置
  POM(project object model)文件 ——-项目对象模块
  GAV(Group Id Artifact Id Version): 该项目Maven的坐标
  Maven——Installations
  Other mirrors: 镜像.
(5)Maven build: 构建到本地仓库中
  (1)依赖的有效性: test, compile, provided, System, runtime
  (2)依赖排除:(注意:除非肯定不使用,要不就使用依赖来排除)
      A.jar—>B.jar 我们只想依赖单独A.jar A[x.class,y.class] B[w.class,z.class]
  (3)依赖的传递性:
     A.jar–>B.jar–>C.jar只有当B.jar和C.jar的有效性为compile时,A.jar–>C.jar
   (4)依赖的整合:
      在Maven中整合MavenB MavenB install到本地仓库
   在MavenA的pom文件中依赖MavenB ,在MavenA中使用MavenB的功能.
(6)JDK版本的设置:

  <!-- 配置jdk环境,如果想统一环境,可以写入settings.xml里 -->
 <profiles>
   <profile>
      <id>development</id>
     <activation>
          <jdk>1.8</jdk>
        <activeByDefault>true</activeByDefault>
     </activation>
    <properties>
      <maven.compiler.source>1.8</maven.compiler.source>
      <maven.compiler.target>1.8</maven.compiler.target>
      <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
    </properties>
  </profile>
</profiles>

(7)统一版本的设置

  <!-- 统一属性设置 -->
  <properties>
        <!-- 字符编码配置 -->
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <!-- 全局版本配置 -->
       <project.junit>4.12</project.junit>
       <project.jdbc.connector>8.0.11</project.jdbc.connector>
        <!-- 名字随便起,下面用${name} 就可以使用值,有点类似el表达式 -->
        <!--  ${project.junit.version} -->
  </properties>
  <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>${project.junit}</scope>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>${project.jdbc.connector}</version>
        </dependency>
 </dependencies>

(8)依赖原则
  (1)就近原则(最短冲突)
     例如: MavenA–>junit
       MavenA–> MavenB–>junit
  (2)如果在同一个pom文件中,配置了同一个依赖,按照”下面”的依赖引入
  (3)如果都是通过依赖其它的模块传递过来的jar包,按照”上面”的依赖引入
      例如: MavenA–>MavenB–>junit 4.0
        MavenA–>MavenC–> junit 4.12 谁先声明,按照谁来
(9)Maven继承
  (1)一般父工程packaging是pom
  (2)在子工程的pom配置

      <parent>
           父工程的gav 
         父工程的pom文件的相对路径
      </parent>        

  (3)并不是将父工程中所有的依赖都导入进来,需要用那些依赖,还需要子工程指定.
 指定的时候,只需要指定groupId 和 artifactId

<!-- 父工程  的packaging为pom(一般自己不写任何实现功能的方法,让别人继承我.相当于以前的BaseDao) -->
    <packaging>pom</packaging>
<dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <!-- 如果不写版本,每次找的都是最新版本 -->
                <version>4.12</version>
            </dependency>
        </dependencies>
</dependencyManagement>
<!-- 配置父工程(模块) -->
    <parent>
        <groupId>com.xalo.maven</groupId>
        <artifactId>ParentMaven</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <!-- 父工程pom文件的相对路径 -->
        <relativePath>../ParentMaven/pom.xml</relativePath>
    </parent>

    <!-- 并不会将父工程中所有的依赖都继承过来,需要指定自己需要的依赖 -->
    <dependencies>
        <!-- 如果是继承父工程的依赖,只需要 groupId和artifactId即可-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
        </dependency>
    </dependencies>

(10)Maven的聚合(把各个模块聚合到一块)
(例如:dao层,service层,action层)将不同的模块/项目,聚合到一起.

<!-- 父工程  的packaging为pom(一般自己不写任何实现功能的方法,让别人继承我) -->
      <packaging>pom</packaging>
       <!-- 聚合操作  A和B合体 --> 
  <modules>
    <!-- 要被聚合的模块的相对路径 -->
        <module>../MbvenB/pom.xml</module>
        <module>../MavenA/pom.xml</module>
  </modules>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧农业是一种结合了现代信息技术,包括物联网、大数据、云计算等,对农业生产过程进行智能化管理和监控的新模式。它通过各种传感器和设备采集农业生产中的关键数据,如大气、土壤和水质参数,以及生物生长状态等,实现远程诊断和精准调控。智慧农业的核心价值在于提高农业生产效率,保障食品安全,实现资源的可持续利用,并为农业产业的转型升级提供支持。 智慧农业的实现依赖于多个子系统,包括但不限于设施蔬菜精细化种植管理系统、农业技术资料库、数据采集系统、防伪防串货系统、食品安全与质量追溯系统、应急追溯系统、灾情疫情防控系统、农业工作管理系统、远程诊断系统、监控中心、环境监测系统、智能环境控制系统等。这些系统共同构成了一个综合的信息管理和服务平台,使得农业生产者能够基于数据做出更加科学的决策。 数据采集是智慧农业的基础。通过手工录入、传感器自动采集、移动端录入、条码/RFID扫描录入、拍照录入以及GPS和遥感技术等多种方式,智慧农业系统能够全面收集农业生产过程中的各种数据。这些数据不仅包括环境参数,还涵盖了生长状态、加工保存、检验检疫等环节,为农业生产提供了全面的数据支持。 智慧农业的应用前景广阔,它不仅能够提升农业生产的管理水平,还能够通过各种应用系统,如库房管理、无公害监控、物资管理、成本控制等,为农业生产者提供全面的服务。此外,智慧农业还能够支持政府监管,通过发病报告、投入品报告、死亡报告等,加强农业产品的安全管理和质量控制。 面对智慧农业的建设和发展,存在一些挑战,如投资成本高、生产过程标准化难度大、数据采集和监测的技术难题等。为了克服这些挑战,需要政府、企业和相关机构的共同努力,通过政策支持、技术创新和教育培训等手段,推动智慧农业的健康发展。智慧农业的建设需要明确建设目的,选择合适的系统模块,并制定合理的设备布署方案,以实现农业生产的智能化、精准化和高效化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值