解決Maven開發發佈出錯

1.JDK版本的設置java

設置全局的jdk,在setting.xml文件中的profiles元素下添加以下profile元素web

<profile>  apache

    <id>jdk17</id>  瀏覽器

    <activation>  緩存

        <activeByDefault>true</activeByDefault>  tomcat

        <jdk>1.7</jdk>  app

    </activation>  框架

    <properties>  eclipse

        <maven.compiler.source>1.7</maven.compiler.source>  webapp

        <maven.compiler.target>1.7</maven.compiler.target>  

        <maven.compiler.compilerVersion>1.7</maven.compiler.compilerVersion>  

    </properties>   

</profile>  

設置局部的jdk,在項目的pom,xml文件中添加以下build元素

<build>  

    <plugins>  

       <plugin>  

            <groupId>org.apache.maven.plugins</groupId>  

            <artifactId>maven-compiler-plugin</artifactId>  

            <configuration>  

                <source>1.7</source>  

                <target>1.7</target>  

            </configuration>  

        </plugin>  

    </plugins>  

</build>  

2.MAVEN的依賴方式主要有兩種WAR包和JAR包;

JAR包-查看源碼方式:右鍵工程-->maven-download source ,就能夠下載源碼;點開jar包就能夠查看源碼;
WAR包-查看源碼方式:右鍵工程-->maven-->install;工程target目錄下會出現目錄war\work ,該目錄就是依賴的WAR解壓後的內容;


3.使用MAVEN開發WEB工程的相關注意點

第一種狀況若是WEB工程只依賴JAR包,注意事項相對少些;

若是工程JAR依賴發生了變化,只須要右鍵工程->MAVEN->UPDATE PROJECT,(該步驟的含義更新JAR依賴,同時根據POM.xml的JDK版本更新工程的編譯版本,clean project從新編譯工程)


第二種狀況:

若是WEB工程依賴了WAR包,若是依賴變動,除了UPDATE PROJECT以外,還要執行maven Install ;


若是WEB工程依賴於其餘WAR包, 處理步驟以下:

STEP1. maven Install (該命令會下載WAR包,解壓到目錄target -->war -->work )


STEP2.而後和本工程的webapp內容進行合併,


注意:合併的原則是不覆蓋本工程的文件(即若是本工程有a.jsp,依賴的war包相同目錄也有同名文件,則合併後的目錄中是本工程的a.jsp);


應用場景:該覆蓋規則能夠用來自定義本工程的個性化樣式,好比以爲框架某個樣式不滿意,能夠本身在本工程的相同目錄添加同名的樣式文件,這樣就實現了自定義樣式。



4.使用MAVEN進行Install操做時,提示編譯錯誤;緣由是maven自帶的編譯規則與eclipse的衝突,可使用eclipse自帶的編譯功能(eclipse工具菜單欄 project-->clean強制編譯),再執行Install。



5.使用eclipse tomcat插件有時出現JAR包或者類找不到的狀況,右鍵工程檢查deployment assembly(發佈打包)配置

每一項都有具體的含義:一個最終的發佈包通常會有WEB-INF,lib,classes等目錄,如下的各項就是相關目錄與源碼的關係!

只須要將最終運行的發佈目錄打開,和「deployment assembly」進行比對就能知道問題所在。



6.Maven經常使用命令

maven clean 刪除target目錄

maven install 打包到本地

maven deploy 部署到私服

 

若是Web項目的WEB-INF(E:\Java\work\.metadata\.plugins\org.eclipse.wst.server.core\tmp2\wtpwebapps\hollybeacon-web\WEB-INF)目錄下沒有web.xml文件,那麼就須要在tomcat中clean。

若是Web項目的WEB-INF/classes(E:\Java\work\.metadata\.plugins\org.eclipse.wst.server.core\tmp2\wtpwebapps\hollybeacon-web\WEB-INF\classes)目錄下沒有文件,那麼就須要清理Project。最好是開啓Eclipse的自動構建。

最後就是點擊Alt+Enter進行查看,查看發佈的目錄。

 

一、項目清理: 選擇菜單欄的Project——>Clean..——>勾選須要清理的項目(也能夠選擇all)  

切記:clean了項目,須要從新編譯


二、項目若是是maven項目,則有時候clean project並不起效。這時候須要用maven來清理緩存:右鍵項目——>Run As ——> Maven clean

切記:此方法清除後,須要從新進行maven編譯,可使用Maven——>Update  Project   或者 自定義的 Maven build


三、若是是以上兩個都不起效,那就直接進入項目的classes 目錄下,查看編譯後的class,進行反編譯,與如今的項目進行對比,看看是否更新了,若是沒有,刪除從新編譯


四、若是是web項目,並用Tomcat啓動的,發現緩存問題,項目沒更新,解決辦法:刪除項目,並進入Tomcat 的webapps  和 work 目錄,刪除你的項目,而後從新導入項目,從新編譯 


五、瀏覽器緩存:瀏覽器緩存包括瀏覽器自帶的緩存 和  程序緩存

(a)自帶緩存:不少瀏覽器,好比google有時候會問你保不保存數據,若是你點的是,在不少時候容易出現數據沒更新的問題

          解決辦法:對於瀏覽器記住密碼或是保存數據什麼的 要慎重.. 若是出現問題:如google,選擇歷史記錄——>清除瀏覽數據——>所有

六、Maven下載源碼

1:Maven命令下載源碼和javadocs

當在IDE中使用Maven時若是想要看引用的jar包中類的源碼和javadoc須要經過maven命令下載這些源碼,而後再進行引入,經過mvn命令可以容易的達到這個目的:

mvn dependency:sources
mvn dependency:resolve -Dclassifier=javadoc

命令使用方法:首先進入到相應的pom.xml目錄中,而後執行以上命令:

第一個命令是嘗試下載在pom.xml中依賴的文件的源代碼。

第二個命令:是嘗試下載對應的javadocs

可是有可能一些文件沒有源代碼或者javadocs

執行Maven-Download Source

2:經過配置文件添加

打開maven配置文件 setting.xml文件(.../.m2/settings.xml) 增長以下配置:

  1. <profiles>  

  2. <profile>  

  3.     <id>downloadSources</id>  

  4.     <properties>  

  5.         <downloadSources>true</downloadSources>  

  6.         <downloadJavadocs>true</downloadJavadocs>             

  7.     </properties>  

  8. </profile>  

  9. </profiles>  

  10.   

  11. <activeProfiles>  

  12.   <activeProfile>downloadSources</activeProfile>  

  13. </activeProfiles>  

3:配置eclipse

Window > Preferences > Maven and checking the "Download Artifact Sources" and "Download Artifact JavaDoc" options


 注意:

MyEclipse下部署Maven工程到Tomcat

1)在工程名或者pom.xml上右鍵,Run As->Maven Clean,該maven指令用於刪除target目錄下的內容,以下圖所示:

 

2)在工程名或者pom.xml上右鍵,Run As->Maven install,該maven指令會將工程打包到本地maven倉庫。刷新工程,你會看到target目錄下生成了一個hollybeacon-start文件夾,以下圖所示:

 

注:若是是第一次執行上面兩個Maven指令,可能會下載一些文件,下載過程當中,請耐心等待。

3)更改工程的發佈目錄

在工程名上右鍵->Properties,在彈出的對話框中選擇MyEclipse->Deployment Assembly,如圖所示:

 

4)選中hollybeacon-start,點擊Remove,移除hollybeacon-start;點擊Add,選擇target下面的hollybeacon-start,點擊finish,添加/target/hollybeacon。如圖所示:

 

5)WEB_INF下面沒有lib包

配置

相關文章
相關標籤/搜索