天天看點

Maven-EclipseEE使用Maven建構Java web項目從0到1Maven是什麼安裝MavenEclipse中設定本地配置的maven(建議)EclipseEE使用Maven建構Java web項目總結

  • Maven是什麼
  • 安裝Maven
    • 解壓apache-maven-350-binzip
    • 建立變量M2_HOME配置Maven主目錄
    • 在 Path 變量中添加 Maven的bin目錄
    • 指令視窗mvn -v檢視是否成功
    • 修改maven預設的倉庫位址可選
  • Eclipse中設定本地配置的maven建議
    • 添加maven
    • 配置maven的配置檔案
  • EclipseEE使用Maven建構Java web項目
    • 建立Maven項目
      • 報錯the-superclass-javax-servlet-http-httpservlet-was-not-found-on-the-java-build
    • 配置項目
      • 添加source folder
        • 報錯The folder is already a source folder
      • 調整Build Path 和 JDK版本
    • 将項目轉換為Dynamic Web Project
      • 報錯Cannot change version of project facet Dynamic Web Module to 30
    • 設定Web Deployment Assembly
      • 每次使用Maven Update project的時候JDK版本都恢複成15的解決辦法
  • 總結

Maven是什麼

簡單的說:Maven是一個開源的建構工具,它可以幫助我們管理項目的建構過程,管理項目的生命周期,jar包依賴關系等。Maven配合持續內建可以實作自動化的編譯、測試、打包、釋出等強大的功能,尤其在持續內建上有為我們帶來了很大便利

安裝Maven

官方下載下傳位址: https://maven.apache.org/download.cgi

目前最新版本: apache-maven-3.5.0-bin.zip

解壓apache-maven-3.5.0-bin.zip

Maven-EclipseEE使用Maven建構Java web項目從0到1Maven是什麼安裝MavenEclipse中設定本地配置的maven(建議)EclipseEE使用Maven建構Java web項目總結

建立變量M2_HOME,配置Maven主目錄

Maven-EclipseEE使用Maven建構Java web項目從0到1Maven是什麼安裝MavenEclipse中設定本地配置的maven(建議)EclipseEE使用Maven建構Java web項目總結

在 Path 變量中添加 Maven的bin目錄

Maven-EclipseEE使用Maven建構Java web項目從0到1Maven是什麼安裝MavenEclipse中設定本地配置的maven(建議)EclipseEE使用Maven建構Java web項目總結

指令視窗mvn -v檢視是否成功

Maven-EclipseEE使用Maven建構Java web項目從0到1Maven是什麼安裝MavenEclipse中設定本地配置的maven(建議)EclipseEE使用Maven建構Java web項目總結

修改maven預設的倉庫位址(可選)

預設情況下Mavne 會将jar包插件等下載下傳到

${user.home}/.m2/repository

下,

通過修改 Maven的配置檔案 M2_HOME/conf/setting.xml 中的localRepository來更改預設的本地倉庫位置

Maven-EclipseEE使用Maven建構Java web項目從0到1Maven是什麼安裝MavenEclipse中設定本地配置的maven(建議)EclipseEE使用Maven建構Java web項目總結

Eclipse中設定本地配置的maven(建議)

如果是web項目,需要下載下傳支援JavaEE的 Eclipse版本,不要使用JavaSE的Eclipse版本。

我使用的是

Eclipse Java EE IDE for Web Developers.

Version: Mars Release (4.5.0)           

複制

不建議使用eclipse自帶的maven,我們在這裡使用我們本地安裝的maven。

添加maven

路徑:Windows->Preferences->Maven->Installations->add

Maven-EclipseEE使用Maven建構Java web項目從0到1Maven是什麼安裝MavenEclipse中設定本地配置的maven(建議)EclipseEE使用Maven建構Java web項目總結

勾選本地的maven

配置maven的配置檔案

User Setting 配置 maven的 配置檔案

Maven-EclipseEE使用Maven建構Java web項目從0到1Maven是什麼安裝MavenEclipse中設定本地配置的maven(建議)EclipseEE使用Maven建構Java web項目總結
  • Global Setting 為全局設定,一般為M2_HOME/conf/setting.xml
  • User Setting 是使用者設定,一般copy 一份 setting.xml 到任意位置,根據自己的需求修改配置檔案
  • Maven的配置檔案遵循”就近原則”,也就是說 User Setting會覆寫 Global Setting;

EclipseEE使用Maven建構Java web項目

建立Maven項目

File —- New —- Other 選擇Maven Project

Maven-EclipseEE使用Maven建構Java web項目從0到1Maven是什麼安裝MavenEclipse中設定本地配置的maven(建議)EclipseEE使用Maven建構Java web項目總結

點選Next

Maven-EclipseEE使用Maven建構Java web項目從0到1Maven是什麼安裝MavenEclipse中設定本地配置的maven(建議)EclipseEE使用Maven建構Java web項目總結

點選Next, 保持預設

Maven-EclipseEE使用Maven建構Java web項目從0到1Maven是什麼安裝MavenEclipse中設定本地配置的maven(建議)EclipseEE使用Maven建構Java web項目總結

選擇 maven-archetype-webapp骨架

說明:

  • 每一個骨架都會建相應的目錄結構和一些通用檔案,最常用的是maven-archetype-quickstart和maven-archetype-webapp骨架。
  • maven-archetype-quickstart骨架是用來建立一個Java Project,
  • maven-archetype-webapp骨架則是用來建立一個JavaWeb Project。
Maven-EclipseEE使用Maven建構Java web項目從0到1Maven是什麼安裝MavenEclipse中設定本地配置的maven(建議)EclipseEE使用Maven建構Java web項目總結

填寫項目資訊,Artifact ID将作為項目名稱。

點選Finish即可。

報錯:the-superclass-javax-servlet-http-httpservlet-was-not-found-on-the-java-build

當建立完web項目後,如果報錯如上

原因: There is no Target Runtimes under Facets

解決辦法一:

pom.xml 添加依賴,自動下載下傳servlet包

<dependency>
    <groupId>javax.servletgroupId>
    <artifactId>javax.servlet-apiartifactId>
    <version>3.1.0version>
    <scope>providedscope>
dependency>           

複制

解決辦法二:

Project → Properties → Target Runtimes → Apache Tomcat 指定容器。

此時項目結構如下:

Maven-EclipseEE使用Maven建構Java web項目從0到1Maven是什麼安裝MavenEclipse中設定本地配置的maven(建議)EclipseEE使用Maven建構Java web項目總結

配置項目

添加source folder

Maven的項目有一些約定:src/main/java , src/main/resources , src/test/java , src/test/resources 。

建立好的JavaWeb項目中目前隻有src/main/resources目錄,是以還需要手動添加src/main/java、src/test/java、src/test/resources

選中項目,右鍵單擊,依次添加Source Folder

Maven-EclipseEE使用Maven建構Java web項目從0到1Maven是什麼安裝MavenEclipse中設定本地配置的maven(建議)EclipseEE使用Maven建構Java web項目總結

報錯:The folder is already a source folder

Maven-EclipseEE使用Maven建構Java web項目從0到1Maven是什麼安裝MavenEclipse中設定本地配置的maven(建議)EclipseEE使用Maven建構Java web項目總結

解決辦法:

項目上右鍵build path –>Configure Build path –> source ,選擇 src/main/java、src/test/java,remove掉,最後重新new source folder即可。

Maven-EclipseEE使用Maven建構Java web項目從0到1Maven是什麼安裝MavenEclipse中設定本地配置的maven(建議)EclipseEE使用Maven建構Java web項目總結

重新建立即可

Maven-EclipseEE使用Maven建構Java web項目從0到1Maven是什麼安裝MavenEclipse中設定本地配置的maven(建議)EclipseEE使用Maven建構Java web項目總結

依次建立source folder後(src/main/java、src/test/java、src/test/resources),如下所示

Maven-EclipseEE使用Maven建構Java web項目從0到1Maven是什麼安裝MavenEclipse中設定本地配置的maven(建議)EclipseEE使用Maven建構Java web項目總結

調整Build Path 和 JDK版本

選中項目,右鍵–> Build Path ->Configure Build Path 選擇 Source标簽,會顯示4個Source Folder ,修改對應的 OutPut folder

輕按兩下每個檔案夾的Output folder,選擇路徑

src/main/java,src/main/resources,選擇target /classes;

src/test/java ,src/test/resources, 選擇target/test-classes;

Maven-EclipseEE使用Maven建構Java web項目從0到1Maven是什麼安裝MavenEclipse中設定本地配置的maven(建議)EclipseEE使用Maven建構Java web項目總結

修改JDK版本:選擇 libraries 标簽,選中JRE library,單擊Edit按鈕

Maven-EclipseEE使用Maven建構Java web項目從0到1Maven是什麼安裝MavenEclipse中設定本地配置的maven(建議)EclipseEE使用Maven建構Java web項目總結

此時的目錄結構如下:

Maven-EclipseEE使用Maven建構Java web項目從0到1Maven是什麼安裝MavenEclipse中設定本地配置的maven(建議)EclipseEE使用Maven建構Java web項目總結

将項目轉換為Dynamic Web Project

選中項目,右鍵單擊,選擇 Properties,左側選擇 Project Facets

Maven-EclipseEE使用Maven建構Java web項目從0到1Maven是什麼安裝MavenEclipse中設定本地配置的maven(建議)EclipseEE使用Maven建構Java web項目總結

選擇Servlet版本 和 JDK版本。

報錯:Cannot change version of project facet Dynamic Web Module to 3.0?

解決辦法:

找到這個工程的 org.eclipse.wst.common.project.facet.core.xml

Maven-EclipseEE使用Maven建構Java web項目從0到1Maven是什麼安裝MavenEclipse中設定本地配置的maven(建議)EclipseEE使用Maven建構Java web項目總結

修改

Maven-EclipseEE使用Maven建構Java web項目從0到1Maven是什麼安裝MavenEclipse中設定本地配置的maven(建議)EclipseEE使用Maven建構Java web項目總結

然後:選中項目 右鍵 選擇 Maven » Update Project (or press Alt+F5)

Maven-EclipseEE使用Maven建構Java web項目從0到1Maven是什麼安裝MavenEclipse中設定本地配置的maven(建議)EclipseEE使用Maven建構Java web項目總結
Maven-EclipseEE使用Maven建構Java web項目從0到1Maven是什麼安裝MavenEclipse中設定本地配置的maven(建議)EclipseEE使用Maven建構Java web項目總結

web.xml

<web-app 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
          http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    version="3.0">
    <display-name>Archetype Created Web Applicationdisplay-name>

web-app>           

複制

設定Web Deployment Assembly

選中項目,右鍵單擊,選擇Properties,在左側選擇Deployment Assembly

這裡是管理 部署項目時,檔案釋出的路徑。

Maven-EclipseEE使用Maven建構Java web項目從0到1Maven是什麼安裝MavenEclipse中設定本地配置的maven(建議)EclipseEE使用Maven建構Java web項目總結

每次使用Maven > Update project的時候JDK版本都恢複成1.5的解決辦法

pom.xml中增加如下配置:

<build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.pluginsgroupId>
        <artifactId>maven-compiler-pluginartifactId>
        <version>3.1version>
        <configuration>
          <source>1.7source>
          <target>1.7target>
        configuration>
      plugin>
    plugins>
build>           

複制

Maven-EclipseEE使用Maven建構Java web項目從0到1Maven是什麼安裝MavenEclipse中設定本地配置的maven(建議)EclipseEE使用Maven建構Java web項目總結

這是Maven已知的一個特性。除非在你的POM檔案中顯示的指定一個版本,否則會使用編譯器預設的source/target版本1.5。主要還是在于Eclipse中Maven的內建方式起到了關鍵作用, 它會從POM檔案中生成項目的.project,.classpath以及.settings, 是以除非POM檔案指定了正确的JDK版本, 否則你每次更新項目配置的時候它都會重置到1.5版本。

參考: http://maven.apache.org/plugins/maven-compiler-plugin/index.html

總結

至此,環境的搭建就部署完成了。