1. 程式人生 > >從npm 角度理解 mvn 的 pom.xml

從npm 角度理解 mvn 的 pom.xml

npm ram tro 方法 根據 頁面 e-book maven class

從npm 角度理解 mvn 的 pom.xml

pom -- project object model. 用於描述項目的配置:

  • 基礎說明
  • 依賴
  • 如何構建運行

類似 node.js 的 package.json
mvn 與 npm 也是有雷同的地方。


<dependencies>

    <!-- Unit Test -->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>${junit.version}</version>
    </dependency>

    <!-- Spring Core -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>${spring.version}</version>
        <exclusions>
            <exclusion>
                <groupId>commons-logging</groupId>
                <artifactId>commons-logging</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
<dependencies>      

dependencies in pom.xml 相當於 項目的依賴包,啟動的時候會去找,如果沒有就去下載。
類似npm 的package.json dependency

dependency 裏面的主要信息groupId, 相當與組織機構的項目組ID,attifactId 項目的通用ID,version 當然是要的了。

然而看起來,要記住的內容十分多,不如npm : 只需要知道package name, version 簡單可以用latest。記住groupid 真的不容易。However,其實並不需要真的記住。有IDE 工具協助:
安裝elipse , maven plugin, 打開 pom.xml , 選擇 dependencies, 選擇 Add, 直接在search 處,輸入你的package name, 會列出搜索結果,自動使用 latest version。當然也可以展開細節list指定某個特定的version。

如果不用elipse, 也可:

http://oqln5pzeb.bkt.clouddn.com/17-7-29/90028337.jpg
http://oqln5pzeb.bkt.clouddn.com/17-7-29/90028337.jpg

mvn package

compile 正常後,如果你用的archeType 是web-app,你可以打包到tomcat 的webapp目錄去運行;其他的類似 譬如打包出jar。

tomcat deploy

以一個archType 為web-app 的項目為例,mvn package 後, 除了上述的cp 到tomcat webapp 目錄,
另外一種手動頁面的部署方法:

localhost:8080 --> manage app
按要求輸入用戶名密碼後,
http://oqln5pzeb.bkt.clouddn.com/17-7-29/84565023.jpg
在輸入 locahost:8080/hello
則可以看到hello world 頁面.

如果遇到403,請參考這裏。
https://www.mkyong.com/tomcat/tomcat-default-administrator-password/

trouble sovling when mvn search not working
reindex maven project with Eclipse

mvn tomcat:run 
mvn jetty:run

tomcat/jetty 是一些mvn plugin.
jetty 參考配置
所謂mvn plugin 可以理解成,這是使得可以集成與mvn 命令一起使用的插件。官方文檔參考

Also:
mvn 可用編譯,打包,安裝,build項目

  • 編譯:(nodejs 裏面沒有這個--因動態語言)

    mvn compile

compile 會下載dependency依賴。

  • 打包:(nodejs 裏面沒有這個--因動態語言)

    4.0.0
    org.springframework
    gs-maven
    jar
    0.1.0

運行mvn package 後,會產生 {$artifactId}-{$version}-jar,如上述的:gs-maven-0.1.0.jar (target 文件夾)

  • 安裝 (類似: npm install)

    mvn install

  • build (類似npm script 裏面的自定義腳本: npm start )
    根據plugin 輸入參數構建,如上述的:

    mvn jetty:run

註意: 使用jetty 來跑的時候,需要配置jetty 的plugin

  <build>
  <plugins>
  <plugin>
      <groupId>org.mortbay.jetty</groupId>
      <artifactId>maven-jetty-plugin</artifactId>
      <version>6.1.26</version>
  </plugin>
  </plugins>
<finalName>hello</finalName>
</build>

常見的plugins
http://www.cnblogs.com/pixy/p/4977550.html

類似 npm clean , npm ,see npm --help

speed it up

mvn 經常很慢,等很久都沒完成。參考以下鏈接
mvn -T 4 install -- will use 4 threads

從npm 角度理解 mvn 的 pom.xml