国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

企業(yè)級(jí)應(yīng)用開發(fā)和Maven之間的那些事

2019-11-08 02:52:14
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

如果找不到這個(gè)文件,可以從Maven安裝目錄下conf/settings.xml文件拷貝到~/.m2/目錄。 Maven的使用

在正式開始之前,先來(lái)介紹一個(gè)概念:Archetype

每個(gè)公司經(jīng)過(guò)長(zhǎng)期的技術(shù)積累,雖然是不同的項(xiàng)目,但項(xiàng)目的代碼基本結(jié)構(gòu)、代碼的打包方式基本是相同的。

Archetype是一個(gè)Maven項(xiàng)目模板管理工具,我們可以把前面說(shuō)的項(xiàng)目一些共性的東西做成一個(gè)模板,在新項(xiàng)目開始的時(shí)候,只可使用Archetype直接初始化項(xiàng)目開發(fā)環(huán)境。在本文中我們就把Archetype理解為項(xiàng)目模板,在寫本節(jié)時(shí),在Maven公共倉(cāng)庫(kù)(http://search.maven.org/)中的Archetype已達(dá)1098個(gè),對(duì)于常見的項(xiàng)目,我們可以直接基于這個(gè)Archetype創(chuàng)建初始環(huán)境即可。

下面我們開始新建一個(gè)項(xiàng)目,我們基于Maven公共倉(cāng)庫(kù)中的Archetype:sPRing-mvc-archetype為基于開始我們的項(xiàng)目。

執(zhí)行如下命令:

mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeGroupId=co.ntier -DarchetypeArtifactId=spring-mvc-archetype -DinteractiveMode=false

相關(guān)參數(shù)說(shuō)明:

DgroupID : java包名 DartifactID : 項(xiàng)目名稱(會(huì)做為生成項(xiàng)目目錄) DarchetypeGroupId: 模板所屬組織ID,默認(rèn)值為:org.apache.maven.archetypes(這里很容易出錯(cuò)哦,一定要指定模板的組織ID,要不然會(huì)報(bào)找不到模板。 DarchetypeArtifactId:模板名稱 DinteractiveMode : 是否與maven交互,如果為true,會(huì)提示輸入包名、版本號(hào)等信息,false時(shí),都使用默認(rèn)值

執(zhí)行完命令后,會(huì)生成如下目錄結(jié)構(gòu):

└── my-app ├── pom.xml └── src └── main ├── java │ └── com │ └── mycompany │ └── app │ ├── config │ │ └── MvcConfiguration.java │ └── controller │ └── HomeController.java └── webapp ├── WEB-INF │ ├── views │ │ └── home.jsp │ └── web.xml └── resources └── style.CSS

這是一個(gè)spring mvc 的 hello world 程序,我們可以看到,這里并沒有看到我們所需要的相關(guān)spring的jar包,我們來(lái)看看maven核心配置文件pom.xml

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.mycompany.app</groupId> <artifactId>my-app</artifactId> <version>1.0-SNAPSHOT</version> <packaging>war</packaging> <name>my-app</name> <url>http://maven.apache.org</url> <properties> <java.version>1.6</java.version> <spring.version>3.1.0.RELEASE</spring.version> <cglib.version>2.2.2</cglib.version> </properties> <dependencies> <!-- Spring core & mvc --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId> <version>${spring.version}</version> <type>jar</type> <scope>compile</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>${spring.version}</version> <type>jar</type> <scope>test</scope> </dependency> <!-- CGLib for @Configuration --> <dependency> <groupId>cglib</groupId> <artifactId>cglib-nodep</artifactId> <version>${cglib.version}</version> <scope>runtime</scope> </dependency> <!-- Servlet Spec --> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.4</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.1</version> <scope>provided</scope> </dependency> </dependencies> <repositories> <repository> <id>springsource-milestones</id> <name>SpringSource Milestones Proxy</name> <url>https://oss.sonatype.org/content/repositories/springsource-milestones</url> </repository> </repositories> <build> <finalName>my-app</finalName> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.0.2</version> <configuration> <source>${java.version}</source> <target>${java.version}</target> </configuration> </plugin> </plugins> </build></project>

配置文件大家一看就知道是干什么了,一開始的version、packaging等屬性是定義這個(gè)項(xiàng)目的版本號(hào)、打包方式等,接下來(lái)的properties定義了一堆常量,后面的dependencies就是聲明項(xiàng)目所依賴的一些包,最后的build是聲明打包編譯時(shí)需要的一些插件。

接下來(lái),進(jìn)入my-app目錄,執(zhí)行如下命令:

cd my-appmvn package

您將看到maven會(huì)到maven遠(yuǎn)程倉(cāng)庫(kù)將pom.xml中聲明的依賴包下載到本地,然后執(zhí)行打包。

命令執(zhí)行完后,您將看到在target目錄下生成了my-app.war的包,拿著這個(gè)包就可以去部署到各種java中間件上了。是不是很方便。

前面介紹過(guò),maven并不是單純的jar包依賴管理工具,Maven是一個(gè)項(xiàng)目管理工具,它包含了一個(gè)項(xiàng)目對(duì)象模型 (Project Object Model),因此,除了管理jar包依賴,它還包括項(xiàng)目管理過(guò)程中常用的很多工具。

我們可以在根目錄下建立test目錄,將java測(cè)試用例放到下面,然后在命令行執(zhí)行mvn test,就能看到測(cè)試結(jié)果,看測(cè)試有沒有發(fā)生錯(cuò)誤等。

對(duì)于開發(fā)人員,經(jīng)常使用tomcat來(lái)開發(fā)的話,整個(gè)過(guò)程是很簡(jiǎn)單的。在剛才的my-app項(xiàng)目根目錄執(zhí)行:mvn tomcat:run,然后打開瀏覽器:http://localhost:8080/my-app ,您就將看到運(yùn)行結(jié)果。沒想到吧,都不用安裝tomcat,全部通過(guò)maven就能搞定。

如果您是在開發(fā)一個(gè)純java模塊,那就執(zhí)行:mvn install就可以把jar包發(fā)布到本地Repository,然后就可以在別的項(xiàng)目里引用這個(gè)jar包了,借助一些插件就可以把它發(fā)布到公司的統(tǒng)一Repository庫(kù)中。

Maven還有很多很多的功能,本書maven就介紹到這里,詳細(xì)的關(guān)于Maven的知識(shí)可以參考一些專業(yè)的書籍或官方文檔。最后推薦您將下面的項(xiàng)目clone到本地來(lái)深入學(xué)習(xí):

https://github.com/spring-projects/spring-mvc-showcase

git clone git://github.com/SpringSource/spring-mvc-showcase.git


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 丰台区| 韶山市| 乌拉特后旗| 长春市| 横山县| 嘉善县| 铜梁县| 株洲市| 福建省| 陆良县| 屯昌县| 中方县| 凉城县| 南澳县| 泾阳县| 获嘉县| 静宁县| 清河县| 宿州市| 宜章县| 化州市| 淄博市| 平原县| 新余市| 郧西县| 杭州市| 前郭尔| 安宁市| 钦州市| 东丰县| 隆昌县| 德化县| 观塘区| 永年县| 申扎县| 星座| 河北省| 寿光市| 林甸县| 二连浩特市| 赞皇县|