005—Maven私有倉庫搭建,插件使用等

材料準備

  1. maven3.X 下載 :
    http://maven.apache.org/download.cgi
  2. Maven 私服倉庫地址:
    https://www.sonatype.com/download-oss-sonatype

配置環(huán)境變量

環(huán)境變量

如果是linux

vim etc/profile
export M2_HOME=/Users/chenhualong/Documents/dev_tool/apache-maven-3.0.5
export PATH=$PATH:$M2_HOME/bin/
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home
source etc/profile

配置path路徑

path路徑

測試

看到版本號

配置公司單獨的私服倉庫

<mirror>
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<url>http://maven.XXXX.com:8081/nexus/content/groups/public/</url>
</mirror>
</mirrors>
在另外公司,用的下面這個劫樟。
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://repo.XXXXXX.net/repository/maven-public/</url>
<mirrorOf>central</mirrorOf>
</mirror>

配置用戶組和權(quán)限

<server>
<!--releases 連接發(fā)布版本項目倉庫-->
<id>releases</id>
<!--訪問releases這個私服上的倉庫所用的賬戶和密碼-->
<username>admin</username>
<password>admin123</password>
</server>

<server>
<!--snapshots 連接測試版本項目倉庫-->
<id>snapshots</id>
<!--訪問releases這個私服上的倉庫所用的賬戶和密碼-->
<username>admin</username>
<password>admin123</password>
</server>

<server>
<id>maven-central</id>
<!--訪問releases這個私服上的倉庫所用的賬戶和密碼-->
<username>admin</username>
<password>admin123</password>
</server>

<server>
<id>maven-3rdParty</id>
<!--訪問releases這個私服上的倉庫所用的賬戶和密碼-->
<username>admin</username>
<password>admin123</password>
</server>

利用命令推送本地Jar包到私服

mvn deploy:deploy-file -DgroupId=tk.mybatis -DartifactId=mapper -Dversion=3.3.9 -Dpackaging=jar -Dfile=C:\Users\lemon\Desktop\tk\mybatis\mapper\3.3.9\mapper-3.3.9.jar -Durl=http://repo.XXXXXX.net/repository/maven-3rdParty/-DrepositoryId=maven-3rdParty

Maven的依賴返回

classpath 分為三種:編譯 classpath , 測試 classpath , 運行 classpath
Scope 選項如下:
Compile:編譯依賴范圍。默認就是 compile。在編譯掀虎,測試,運行都有效付枫;
Test:測試依賴范圍烹玉。僅測試有效; 例如 JUnit阐滩;
Provided:已提供依賴范圍二打。編譯,測試有效掂榔,運行時候無效继效。例如 servlet-api。
System:系統(tǒng)依賴范圍装获。(了解即可)使用 system 范圍的依賴必須通過 sytemPath 指定依賴文件的路徑瑞信。
Import:導入依賴范圍。(了解即可)使用 dependencyManagement 時候穴豫,可以導入依賴配置

利用idea構(gòu)建多模塊maven項目

* 新建maven,不要勾選任何的archetype.然后填寫artifactId和groupId喧伞。
* 刪除SRC目錄,只剩下pom文件即可。
* 新建module,然后通知不勾選任何的archetype潘鲫,自己構(gòu)建目錄即可翁逞。
* 例子中,首先加入moudle,這個順序需要注意溉仑,不然構(gòu)建會報錯挖函。
<!--子模塊-->
<modules>
<module>lemon-maven-module</module>
<module>lemon-maven-dao</module>
<module>lemon-maven-service</module>
<module>lemon-maven-web</module>
</modules>
<!--依賴父jar spring boot的相關(guān)包-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.6.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
其中,dao依賴module,service依賴dao,web依賴service. 在web層浊竟,我們新建run啟動方法怨喘,然后配置文件之類的寫在web層。
在啟動的時候振定,最好web必怜,把所有的module都依賴上,這樣就完全沒有問題后频。

多模塊項目打包

先配置web層的pom文件

<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
梳庆,就可以打出可執(zhí)行的包了。注意打包順序卑惜,被依賴的先打膏执。
[INFO] Reactor Summary:
[INFO]
[INFO] lemon-maven-parent ................................. SUCCESS [ 0.876 s]
[INFO] lemon-maven-module ................................. SUCCESS [ 0.755 s]
[INFO] lemon-maven-dao .................................... SUCCESS [ 0.087 s]
[INFO] lemon-maven-service ................................ SUCCESS [ 0.043 s]
[INFO] lemon-maven-web .................................... SUCCESS [ 0.444 s]

搭建maven私服

* 解壓私服程序 tar xzvf nexus-oss-webapp-1.8.0-bundle.tar.gz
* 啟動私服程序 ./nexus start
* 訪問私服 : http://host:8081/nexus
* 登陸: admin/admin123
* 點擊Repositories,選擇public reposotories,下方選擇configuration,選擇需要留下的組移動過去
* remote storage location 里面填寫; http://repo1.maven.org/maven2/

常用的maven插件

maven-jetty-plugin

輸入:mvn jetty:run。這將在端口為8080的Jetty服務器上啟動你的項目露久。Jetty將持續(xù)運行更米,直到插件是明確停止。例如毫痕,按下<ctrl-c>征峦,或使用mvn jetty:stop命令


<build>
<finalName>rop-sample</finalName>
<plugins>
<!-- jetty插件 -->
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<version>6.1.5</version>
<configuration>
<webAppSourceDirectory>src/main/webapp</webAppSourceDirectory>
<scanIntervalSeconds>3</scanIntervalSeconds>
<contextPath>/</contextPath>
<connectors>
<connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
<port>8088</port>
</connector>
</connectors>
</configuration>
</plugin>
</plugins>
</build>

maven-compiler-plugin 需要在編譯和生成的時候使用不同的jdk版本

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.6</source>
<target>1.7</target>
</configuration>
</plugin>

maven-war-plugin

打包war項目的時候排除某些web資源文件,這時就應該配置maven-war-plugin如下

 <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<configuration>
<webResources>
<resource>
<directory>src/main/webapp</directory>
<excludes>
<exclude>**/*.jpg</exclude>
</excludes>
</resource>
</webResources>
</configuration>
</plugin>
maven-source-plugin 生成源碼包

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.1.2</version>
<executions>
<execution>
<id>attach-sources</id>
<phase>verify</phase>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>

maven-javadoc-plugin 生成javadoc包<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.7</version>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
maven-assembly-plugin
它支持各種打包文件格式消请,包括zip栏笆、tar.gz、tar.bz2等等梯啤,通過一個打包描述文件(該例中是src/main/assembly.xml)竖伯,它能夠幫助用戶選擇具體打包哪些文件集合、依賴因宇、模塊七婴、和甚至本地倉庫文件,每個項的具體打包路徑用戶也能自由控制察滑。如下就是對應上述需求的打包描述文件src/main/assembly.xml


<assembly>
<id>bin</id>
<formats>
<format>zip</format>
</formats>
<dependencySets>
<dependencySet>
<useProjectArtifact>true</useProjectArtifact>
<outputDirectory>lib</outputDirectory>
</dependencySet>
</dependencySets>
<fileSets>
<fileSet>
<outputDirectory>/</outputDirectory>
<includes>
<include>README.txt</include>
</includes>
</fileSet>
<fileSet>
<directory>src/main/scripts</directory>
<outputDirectory>/bin</outputDirectory>
<includes>
<include>run.sh</include>
<include>run.bat</include>
</includes>
</fileSet>
</fileSets></assembly>

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2.1</version>
<configuration>
<descriptors>
<descriptor>src/main/assembly/assembly.xml</descriptor>
</descriptors>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>

maven-surefire-plugin 打包時跳過單元測試

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.16</version>
<configuration>
<forkMode>once</forkMode>
<argLine>-Dfile.encoding=UTF-8</argLine></plugin>

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末打厘,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子贺辰,更是在濱河造成了極大的恐慌户盯,老刑警劉巖嵌施,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異莽鸭,居然都是意外死亡吗伤,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進店門硫眨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來足淆,“玉大人,你說我怎么就攤上這事礁阁∏珊牛” “怎么了?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵姥闭,是天一觀的道長丹鸿。 經(jīng)常有香客問我,道長棚品,這世上最難降的妖魔是什么靠欢? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮南片,結(jié)果婚禮上掺涛,老公的妹妹穿的比我還像新娘庭敦。我一直安慰自己疼进,他們只是感情好,可當我...
    茶點故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布秧廉。 她就那樣靜靜地躺著伞广,像睡著了一般。 火紅的嫁衣襯著肌膚如雪疼电。 梳的紋絲不亂的頭發(fā)上嚼锄,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天,我揣著相機與錄音蔽豺,去河邊找鬼区丑。 笑死,一個胖子當著我的面吹牛修陡,可吹牛的內(nèi)容都是我干的沧侥。 我是一名探鬼主播,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼魄鸦,長吁一口氣:“原來是場噩夢啊……” “哼宴杀!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起拾因,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤旺罢,失蹤者是張志新(化名)和其女友劉穎旷余,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體扁达,經(jīng)...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡正卧,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了跪解。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片穗酥。...
    茶點故事閱讀 39,779評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖惠遏,靈堂內(nèi)的尸體忽然破棺而出砾跃,到底是詐尸還是另有隱情,我是刑警寧澤节吮,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布抽高,位于F島的核電站,受9級特大地震影響透绩,放射性物質(zhì)發(fā)生泄漏翘骂。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一帚豪、第九天 我趴在偏房一處隱蔽的房頂上張望碳竟。 院中可真熱鬧,春花似錦狸臣、人聲如沸莹桅。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽诈泼。三九已至,卻和暖如春煤禽,著一層夾襖步出監(jiān)牢的瞬間铐达,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工檬果, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留瓮孙,地道東北人。 一個月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓选脊,卻偏偏與公主長得像杭抠,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子知牌,可洞房花燭夜當晚...
    茶點故事閱讀 44,700評論 2 354