IDEA中Maven的使用初探

Maven

Maven官網:https://maven.apache.org/

Apache Maven 是一個軟件項目管理和理解工具。基於項目對象模型 (POM) 的概念,Maven 可以從一條中央信息中管理項目的構建、報告和文檔。

主要用來生成、導入和配置jar包,在Maven 中約束大於配置 目錄結構必須按照規範

Maven安裝

官網下載安裝包解壓即可

Maven配置環境變量

windows中配置maven環境變量

mac下環境變量配置(這裏後面方便項目搭建 換成了3.6.3的版本)

# Maven 3.8.1 START
export M2_HOME=/Users/bjdzbjba0152/Desktop/javacode/enviorment/apache-maven-3.8.1
export PATH=$PATH:$M2_HOME/bin
# Maven 3.8.1 END

# Maven 3.6.3 START
export M2_HOME=/Users/bjdzbjba0152/Desktop/javacode/enviorment/apache-maven-3.6.3
export PATH=$PATH:$M2_HOME/bin
# Maven 3.6.3 END

Maven配置aliyun鏡像

配置文件位於 conf/settings.xml

<mirror>
    <id>nexus-aliyun</id>
    <mirrorOf>*</mirrorOf>
    <name>Nexus aliyun</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>

Maven本地倉庫

<localRepository>/Users/b/Desktop/javacode/enviorment/apache-maven-3.8.1/maven-repo</localRepository>

從鏡像拉取包

mvn help:system

最後沒有報錯說明安裝就沒問題了

IDEA中使用Maven

創建一個Maven項目

next,不選自帶的,選擇剛纔下載的3.8.1

點擊finish就ok了

打開Preference 可以看下關於maven的相關配置,因爲有時IDEA會自動使用默認的Maven,如果出現類似情況需要手動改一下

關於其他幾項配置

importing

Ignored Files

Runner

Repositories 本地倉庫

創建一個普通的Maven項目

Maven純淨項目概覽

Maven項目配置Tomcat

在run=>Edit Configurations

設置基礎信息

解決fix報錯內容,添加一個artifact即可。下面的Application context可寫可不寫,是指定路由的

點擊+無artifact解決:

打開Project Structure ==> 選擇Artifacts ==> Web Application:Exploded

選擇自己的項目就好了

回到Edit Configurations,就已經出現了Artifact...選項了

Maven側邊欄

Maven中的pom.xml

pom.xml是maven的核心配置文件,注意<dependencies>這裏可以根據遠程倉庫選擇自己的依賴jar包,只要在配置文件加入該包的<dependency> Maven即可自動導入該jar包也包括這個jar包所依賴的其他jar包。

<dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
<?xml version="1.0" encoding="UTF-8"?>
<!--Maven版本和頭文件-->
<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">
  <modelVersion>4.0.0</modelVersion>

<!--GAV配置(group id,artifact id, version)-->
  <groupId>com.zh1z3ven</groupId>
  <artifactId>javawebTestDemo</artifactId>
  <version>1.0-SNAPSHOT</version>
  
<!--  項目打包方式
jar: java應用
war: javaweb應用
-->
  <packaging>war</packaging>
<!--項目名稱(可刪)-->
  <name>javawebTestDemo Maven Webapp</name>
  <!-- FIXME change it to the project's website -->
  <url>http://www.example.com</url>

<!--配置-->
  <properties>
<!--    項目默認構建編碼-->
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!--    項目默認編譯版本-->
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>

<!--  項目依賴-->
  <dependencies>
<!--    具體依賴jar包配置-->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

<!--  項目構建用的東西-->
  <build>
    <finalName>javawebTestDemo</finalName>
    <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
      <plugins>
        <plugin>
          <artifactId>maven-clean-plugin</artifactId>
          <version>3.1.0</version>
        </plugin>
        <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
        <plugin>
          <artifactId>maven-resources-plugin</artifactId>
          <version>3.0.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.8.0</version>
        </plugin>
        <plugin>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>2.22.1</version>
        </plugin>
        <plugin>
          <artifactId>maven-war-plugin</artifactId>
          <version>3.2.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-install-plugin</artifactId>
          <version>2.5.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>2.8.2</version>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
</project>

Maven觀察jar包依賴樹

關於Maven導出問題

由於Maven約定大於配置,我們之後可能遇到我們寫的配置文件無法導出或生效

解決方法:在build下面加一個resource,配置一個resource節點,防止資源導出失敗

因默認在java目錄下,根據maven的約束只能寫java文件,如果這時該目錄存在xml文件則無法導出

<build>
    <resources>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
            </includes>
            <filtering>false</filtering>
        </resource>
        <resource>
            <directory>src/main/resources</directory>
            <includes>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
            </includes>
            <filtering>false</filtering>
        </resource>
    </resources>
</build>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章