国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
使用maven3 創(chuàng)建自定義的archetype
摘要
以下只是Maven自定義Archetype創(chuàng)建的簡單流程以及期間可能碰到的問題的一些整理性內(nèi)容,大部分內(nèi)容從Maven的官方站點或者相關(guān)書籍中都可以找到。 關(guān)于Archetype是個什么東西,我想用過Maven的都不用說了, 沒用過的也沒關(guān)系, 簡單來講, 就是一堆預(yù)先設(shè)定好的項目結(jié)構(gòu)文檔,有了這個東西,在新建同一類型的項目的時候,就不用又從頭搗鼓一遍,比如,從這個項目抓個log4j.xml改一下,到那個項目抓一個web.xml文件改一下等等。預(yù)先建立一個針對某種場景下使用的archetype,用的時候只需要運行一條命令就所有東西都備齊了。

、創(chuàng)建自己的archetype一般有兩種方式,比較簡單的就是create from project

1.1、首先使用eclipse創(chuàng)建一個新的maven project,然后把配置好的一些公用的東西放到相應(yīng)的目錄下面
    
比如說會將一些常用的java代碼存放到src/main/java目錄下面;
    
會將一些通用的配置文件放到src/main/resources目錄下面;

    如果是javeEE工程,還會有一些jsp等等的文件存放到src/main/webapp目錄下面

 

1.2、然后在maven projectpom.xml文件中添加插件
    ================================================
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-archetype-plugin</artifactId>
            <version>2.2</version>
        </plugin>
    </plugins>
    ================================================

1.3、打開cmd窗口,cd到剛才創(chuàng)建的maven project的根目錄,運行maven命令:
    
mvn archetype:create-from-project
    然后會在target目錄下面生成generated-sources目錄,這個就是生成的 archetype

1.4、cd進入generated-sourced/archetype目錄,運行maven命令:
    
mvn install
    這樣就把自定義的archetype安裝到本地倉庫了。

archetype安裝的地址是在maven安裝目錄下面的conf/settings.xml文件中指定的(<localRepository>字節(jié))。
    默認會在  ~/.m2  目錄下面生成一個archetype-catalog.xml文件(和默認的settings.xml在同一個目錄),
    聲明了該archetypegroupId、artifactId和其他屬性。
    因為Eclipse創(chuàng)建maven項目過程中,選擇的“Default Local”指向的地址就是 ~/.m2,
    所以文件archetype-catalog.xml會被eclipse自動讀取,
    使用eclipse創(chuàng)建maven項目的時候可以在"Default Local"一項中找到剛才自定義archetype名字。

1.5、如果想要卸載剛才安裝的archetype,只需要將~/.m2目錄下面的archetype-catalog.xml文件中對應(yīng)的<archetype>字節(jié)段刪掉,
    并且把本地倉庫中相應(yīng)groupIdartifactId下面的文件刪掉就可以了。

1.6、安裝到本地倉庫中的archetype只可以被自己使用,如果想要共享,那么在第四步的時候使用deploy命令,不要使用install命令。

 

二、可能遇到的一些問題

直接使用archetype:create-from-project比起手工去打造一個archetype要便捷的多,但, 有時候偷懶會有些不靠譜,archetype:create-from-project的某些行為可能會與我們最初的設(shè)想有出入,這個時候就需要我們在最終發(fā)布新創(chuàng)建的archetype之前,做有些后繼處理,比如:

2.1. Java文件對應(yīng)的package被忽略

對于要包含到archetypeJava代碼文件來說, archetype:create-from-project之后, Java代碼文件原來的package結(jié)構(gòu)會被忽略掉,比如,對于如下類來說:

cn.spring21.app.defaults.controller.QuickStartController

當(dāng)archetype:create-from-project之后, archetype中對應(yīng)的文件就變成了:

QuickStartController

這顯然不是我們想要的結(jié)果(當(dāng)然,對于不在乎這一結(jié)構(gòu)的archetype來說則無所謂),為此,我們要對archetype:create-from-project之后生成的結(jié)果文件進行定制。

首先, 我們編輯文件target/generated-sources/archetype/src/main/resources/META-INF/maven/archetype-metadata.xml,它記載了archetype里都包含哪些文件和目錄結(jié)構(gòu),將如下內(nèi)容:

Xml代碼  

1.  <sources>  

2.    <source>src/main/java/QuickStartController.java</source>  

3.  </sources>  

 

變更為:

Xml代碼 

1.  <sources>  

2.    <source>src/main/java/cn/spring21/app/defaults/controller/QuickStartController.java</source>  

3.  </sources>  

 

 

然后,將以上文件和目錄結(jié)構(gòu)創(chuàng)建或者Copy到如下目錄:

target/generated-sources/archetype/src/main/resources/archetype-resources/src/main/java

所有這些做完之后,Java源代碼文件結(jié)構(gòu)就可以保持了。

雖然想要的Java源代碼目錄結(jié)構(gòu)可以保持住了,不過, 還會有一個煩人的地方,如果我們在使用這個archetype創(chuàng)建新的project的時候,不明確指定packageName,那maven自作多情的把groupId作為Java文件的package,前綴到原來的package前面。比如, 如果我原來java文件對應(yīng):

cn/spring21/app/defaults/controller/QuickStartController.java

而創(chuàng)建項目的時候, 指定“-DgroupId=cn.spring21”,那么,最后生成的項目中, 對應(yīng)的Java文件就跑到了“cn/spring21/cn/spring21/app/defaults/controller/QuickStartController.java”,stupid

要解決這個問題, 可以在使用archetype創(chuàng)建project的時候,明確將packageName指定為空:

mvn archetype:create -DarchetypeGroupId=archetypeGroupId-DarchetypeArtifactId=archetypeArtifactId-DarchetypeVersion=0.0.2-SNAPSHOT -DgroupId=cn.spring21-DartifactId=sample -Dversion=0.0.1-SNAPSHOT -DpackageName=

唯一不爽的就是命令行實在實在太長了。

2.2. 多余文件的清理

有時候, archetype:create-from-project會把一些不必要的文件和目錄結(jié)構(gòu)也包含到最終的archetype中, 我們可以通過編輯文件target/generated-sources/archetype/src/main/resources/META-INF/maven/archetype-metadata.xml來清理這些不必要包含的文件和目錄結(jié)構(gòu)。

比方說,如果我們是使用EclipseIDE來搭建要做成archetypeproject的話,一些EcilpseIDE特有的文件和目錄,比如.settings目錄啦,.classpath/.project文件啦,都會被copyarchetype的目錄下,這時候,我們就可以把archetype-metadata.xml文件中對應(yīng)這些文件和目錄的<fileset>元素刪除掉來清理它們。

2.3. 二進制文件的損壞

如果某些二進制文件要包含到archetype當(dāng)中, 比如, 常見的圖片文件, 我們需要編輯archetype.xml文件中對應(yīng)這些文件的<resource>元素配置,為這些元素添加filtered="false"的屬性, 否則的話,當(dāng)使用這個archetype來創(chuàng)建新的工程的時候,這些二進制文件就會廢廢了,原因嘛,還是因為maven自作多情,呵呵,居然把圖片當(dāng)Velocity模板來看待。


本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
解決Idea創(chuàng)建maven-archetype-webapp項目無java目錄的問題
7天學(xué)會Maven(第二天——Maven 標準目錄結(jié)構(gòu))
AppFuse QuickStart - Chinese - AppFuse 2 -?Co...
Flink實戰(zhàn):02.保存項目為archetype模板
Maven插件之build
APT倉庫目錄和repository目錄結(jié)構(gòu)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服