使用Maven建立工程

使用Maven建立工程

Maven能夠建立Java工程,也能夠建立Java Web工程,下面詳細介紹一下。java

注意:如下演示使用的是JDK1.7版本,不要與上一篇博客搞混,本身安裝的哪一個版本的JDK,就使用哪一個版本的JDK。web

1、建立Java工程

一、New項目

右鍵new other,搜索Maven,在Maven目錄下選擇Maven Project,點擊Next,以下圖:apache

二、選擇項目名稱和空間

選擇項目要使用的東西,只勾選User default Workspace location,另外兩個不作勾選。如圖有選項的解釋。
骨架:至關因而項目模板。以下圖:api

三、選擇骨架app

這裏咱們要建立的是Java項目,因此選擇quickstart結尾的骨架,而後next。以下圖:框架

四、設置項目座標

Group Id:項目分組ID,其實就是包名。
Artifact Id:項目名稱
Version:項目版本號。
Package:包名,根據上面的group id 和Artifact id 自動生成,不用填寫。
這些信息填寫完成,點擊Finish。eclipse

SNAPSHOT:快照版本。不穩定版本,常常涉及修改的版本,可能一天都會修改多個版本。
RELEASE:發佈版本。穩定版本,沒有項目更新和bug的版本,若是後期生產環境下出現bug或有新的功能,須要發佈新的 Release版本。
第一次建立工程會花費一段時間,由於骨架也須要下載依賴文件。webapp

五、修改項目JDK版本

因爲Maven工具自己的緣由,新建立的項目默認都使用的是1.5版本的JDK,這就須要咱們本身手動修改一下JDK以及JRE的版本。maven

1.修改JRE版本

在工程上右鍵,選擇Properties,出現如圖界面,而後選擇Java build Path,在Libraries中找到JRE選中,點擊Edit,進行編輯了,選中本身安裝的JRE,點擊Finish,點擊OK,便可修改完成。工具

2.修改JDK版本

在如圖界面,找到Java Compiler,將JDK版本改到本身安裝的版本,點擊OK便可。

6.修改eclipse視圖

將Eclipse的目錄視圖改爲包視圖,在window-showview中,修改爲以下視圖。

2、建立Web工程

一、建立web工程

建立web項目和Java項目前面的步驟都同樣,只是在選擇項目骨架的時候,選擇web項目骨架便可。當項目建立完成以後,步驟有所不一樣。Web項目須要修改JRE版本,JDK版本,Maven中Project Facets中Java的版本。以下圖:

二、關閉校驗

由於Eclipse中的校驗級別很高,經常會無故的報錯,這裏建議將全部的校驗給關閉。如圖操做。

三、目錄結構

main目錄下是項目的主要代碼。
src/main/java下存放Java代碼。
src/main/resources下存放配置文件。
test目錄下存放測試相關的代碼。
target目錄下存放編譯輸出後的代碼。
webapp下存放Web應用相關代碼。
pom.xml是Maven項目的配置文件。

3、配置文件pom.xml

由於這個配置文件是Maven的核心,所以有必要詳細解讀一下pom.xml,來先看一下上面的幾個:

一、modelVersion

指定了當前Maven模型的版本號,對於Maven2和Maven3來講,它只能是4.0.0

二、groupId

顧名思義,這個應該是公司名或是組織名。通常來講groupId是由三個部分組成,每一個部分之間以"."分隔,第一部分是項目用途,好比用於商業的就是"com",用於非營利性組織的就是"org";第二部分是公司名,好比"tengxun"、"baidu"、"alibaba";第三部分是你的項目名。

三、artifactId

能夠認爲是Maven構建的項目名,好比你的項目中有子項目,就可使用"項目名-子項目名"的命名方式

四、version

版本號,SNAPSHOT意爲快照,說明該項目還在開發中,是不穩定的版本。在Maven中很重要的一點是groupId、artifactId、version三個元素生成了一個Maven項目的基本座標,這很是重要。

五、其餘

在上面的這些元素以外,還有一些元素,一樣羅列一下:

1.packing

項目打包的類型,可使jar、war、rar、ear、pom,默認是jar

2.dependencies和dependency

前者包含後者。前面說了,Maven的一個重要做用就是統一管理jar包,爲了一個項目能夠build或運行,項目中不可避免的,會依賴不少其餘的jar包,在Maven中,這些依賴就被稱爲dependency。

3.properties

properties是用來定義一些配置屬性的,例如project.build.sourceEncoding(項目構建源碼編碼方式),能夠設置爲UTF-8,防止中文亂碼,也可定義相關構建版本號,便於往後統一升級。

4.build

build表示與構建相關的配置,好比build下有finalName,表示的就是最終構建以後的名稱。

六、示例

下面是阿里DATAX的一個pom文件,拿過來給你們看成示例展現。

<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>
    <parent>
        <groupId>com.alibaba.datax</groupId>
        <artifactId>datax-all</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>

    <artifactId>datax-core</artifactId>
    <name>datax-core</name>
    <packaging>jar</packaging>

    <dependencies>
        <dependency>
            <groupId>com.alibaba.datax</groupId>
            <artifactId>datax-transformer</artifactId>
            <version>${datax-project-version}</version>
            <exclusions>
                <exclusion>
                    <artifactId>slf4j-log4j12</artifactId>
                    <groupId>org.slf4j</groupId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>commons-configuration</groupId>
            <artifactId>commons-configuration</artifactId>
            <version>${commons-configuration-version}</version>
        </dependency>
        <dependency>
            <groupId>commons-cli</groupId>
            <artifactId>commons-cli</artifactId>
            <version>${commons-cli-version}</version>
        </dependency>
        <dependency>
            <groupId>commons-beanutils</groupId>
            <artifactId>commons-beanutils</artifactId>
            <version>1.9.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
            <version>4.4</version>
        </dependency>
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>fluent-hc</artifactId>
            <version>4.4</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
        </dependency>
        <dependency>
            <groupId>org.codehaus.janino</groupId>
            <artifactId>janino</artifactId>
            <version>2.5.16</version>
        </dependency>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-core</artifactId>
            <version>1.8.5</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.powermock</groupId>
            <artifactId>powermock-api-mockito</artifactId>
            <version>1.4.10</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.powermock</groupId>
            <artifactId>powermock-module-junit4</artifactId>
            <version>1.4.10</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.3.2</version>
        </dependency>
        <dependency>
            <groupId>org.codehaus.groovy</groupId>
            <artifactId>groovy-all</artifactId>
            <version>2.1.9</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <configuration>
                    <archive>
                        <manifest>
                            <mainClass>com.alibaba.datax.core.Engine</mainClass>
                        </manifest>
                    </archive>
                </configuration>
            </plugin>

            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <configuration>
                    <archive>
                        <manifest>
                            <mainClass>com.alibaba.datax.core.Engine</mainClass>
                        </manifest>
                    </archive>
                    <finalName>datax</finalName>
                    <descriptors>
                        <descriptor>src/main/assembly/package.xml</descriptor>
                    </descriptors>
                </configuration>

                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <!-- compiler plugin -->
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                    <encoding>${project-sourceEncoding}</encoding>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

4、利用Maven引入三方框架

一、查找框架座標

能夠從框架官網查找,或前往maven的官方倉庫查找:http://mvnrepository.com/
把座標寫到pom.xml文件中的 <dependcies>內部。以下圖:

二、Jar下載

寫完座標以後保存時,會自動下載pom文件中配置好的框架及框架的依賴jar包。

三、Jar包保存

下載下來的文件存放在本地倉庫中:

上一篇:Maven介紹及安裝

下一篇:Maven私服

相關文章
相關標籤/搜索