[JAVA] Maven 馬份

Maven是一個基於POM的JAVA project automation/management tool. 透過POM可以針對JAVA Project進行build、log跟site(就是建立說明文件), 相當方便的一個玩意.

(1)建立新的project
    "mvn archetype:generate"
    => 會以prompt方式要求輸入
             archetype(採用哪個project template, 預設99),
             version, 
             groupId(這個project是由哪個組織或公司建立, ex. arc.com.gg),
             artifactId(即Project name),
             package(就是Java package).
     * 下command方式可以用 "mvn archetype:create -DgroupId=apache.org.gg -DartifactId=MyProject -DpackageName=apache.org.package"

(2) mvn 定義了build project的整個lifecycle, 每個stage of lifecycle都稱為一個 build phase (ex. validate, compile, package, install, and deploy). 常用的像 "mvn package", "mvn clean package". (但官網稱build phase為 goal... 可能因為可以一次串接多個phases, 用goals比較適合 = = 算了... 賣弄文字)

(3) 接著作plugins configuration. 我的理解是plugin是為完成goals的tools. lol   不過plugin有兩類: build plugins(放在 <build/>下的)跟reporting plugins(放在<reporting/>).
build plugin 在pom.xml的格式如下
<build>
    <plugins>
        <plugin>
                <groupId>org.apache.mavens.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>2.3.1</version>
                <configuration>
                    <archive>
                        <manifest>
                            <addClasspath>true</addClasspath>
                            <mainClass>YOUR.FULL.CLASS.MAIN.PATH</mainClass>
                        </manifest>
                    </archive>
                 </configuration>
        </plugin> 
        ........
    </plugins>
</build>

接著就需要去了解有哪些plugins可用, 還有像bundle, compile, jar的plugins裡頭的elements意義了.

Comments

Popular posts from this blog

股票評價(Stock Valuation) - 股利折現模型

openwrt feed的使用

How to convert Markdown into HTML