描述:Myeclipse新建maven項目,Select an Archetype列表爲空
緣由:缺乏archetype文件
解決思路:經過mvn命令來建立項目骨架,這時maven會自動去更新而且下載archetype文件.html
mvn archetype:generate // 首先它會去下載依賴的jar文件, // 而後出現Generating project in interactive mode.(會等待較長時間,跟網速有關.) // 接在它會下載最新的http://repo1.maven.org/maven2/archetype-catalog.xml // 最後出現Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 909: // 這是提示你建立新項目骨架,這是能夠直接退出命令行,重啓myeclipse建立新項目了.
參考: http://blog.csdn.net/kingzone_2008/article/details/39621849
http://tieba.baidu.com/p/2804486258
http://www.cnblogs.com/yjmyzz/p/3495762.htmlapache
JVM內存過小了,從新設置一下Myeclipse的JVM內存,參考http://unixboy.iteye.com/blog/174173/app
dependencyManagement是聲明本項目中可能會使用什麼依賴,(能夠用於版本統一管理)
dependencies是定義項目中使用什麼依賴
當一個依賴出如今dependencyManagement中時dependencies中的定義就不須要版本號了eclipse
<!-- 聲明項目用哪一個版本的junit --> <!-- 一般這個是放在 parent項目中的 --> <dependencyManagement> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> </dependency> </dependencies> </dependencyManagement>
<!-- 定義項目使用哪一個版本的junit --> <!-- 一般這些是定義在 子項目中的 --> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <scope>test</scope> <!-- 建議不要設置version值, 它會默認找management中的version --> <!-- 若是項目有特殊差別,能夠在此定義當前項目中須要的版本 --> <!-- <version>3.8</version> --> </dependency> </dependencies>
注意:只有依賴被定義時maven纔會將依賴添加到項目中maven
須要爲resource設置filtering爲true,這樣纔會將profile屬性編譯到resouce文件中工具
<!-- 若是你使用了pros,就須要顯式定義resource,而且設置filtering --> <resources> <!-- resource 的具體狀況請根據項目的路徑來設定,這裏只是參考 --> <resource> <!-- 主要是這個屬性 --> <filtering>true</filtering> <directory>src/main/resources</directory> <!-- 若是不聲明includes就表示目錄下全部文件 --> <includes> <include>**/*</include> </includes> </resource> </resources>
5.1.肯定文件格式是utf-8
5.2.肯定配置文件顯式聲明爲utf-8
5.3.pom設置project.build.sourceEncoding,以及設置maven-compiler-plugin的編碼方式測試
<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> ..... ..... <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.7</source> <target>1.7</target> <!--主要是這一句 --> <encoding>UTF-8</encoding> </configuration> </plugin>
這個問題參考地址:http://blog.csdn.net/chinazgr/article/details/48176089ui
思路,經過xml定義好不一樣環境的配置參數,經過命令-P或者activeByDefault的參數來定義用哪套來打包.
6.1定義全部環境的配置參數編碼
<!-- 能夠經過mvn -P [ID 好比:mvn -PDEV install] 來使用 --> <profiles> <!-- 開發環境配置參數 --> <profile> <id>DEV</id> <!-- 默認使用它來打包 --> <activation><activeByDefault>true</activeByDefault></activation> <properties> <!-- 參數配置, 標籤是你本身定義的 --> <mvncfg.log.path><![CDATA[F:/logs]]></mvncfg.log.path> </properties> </profile> <!-- 測試環境配置參數 --> <profile> <id>TEST</id> <!-- 若是想要打包測試環境,將上面的activation註釋掉,而且copy到這裏 --> <properties> <!-- 日誌輸出路徑 --> <mvncfg.log.path><![CDATA[F:/test/logs]]></mvncfg.log.path> </properties> </profile> </profiles>
6.2告訴maven哪些文件須要使用這些參數來替換佔位符,或者哪些文件不須要替換佔位符spa
<!-- 全部你須要先定義哪些是資源文件 --> <resources> <resource> <!-- 這個是最關鍵的 --> <filtering>true</filtering> <directory>src/main/resources</directory> <includes> <include>**/*</include> </includes> <!-- 這個是爲了排除部分不須要替換佔位符,或者已有的佔位符與maven佔位符衝突的文件 --> <!-- 一般建議你避開一下maven自己自帶的佔位符,好比${id},這樣就不須要定義排除了 --> <excludes> <exclude>config/execlude.xml</exclude> </excludes> </resource> <!-- execlude.xml原本是資源文件,只是不須要使用替換佔位符而已 --> <!-- 因此這裏還須要將execlude.xml聲明爲資源文件 --> <resource> <!-- 這個參數告訴maven不須要幫我替換佔位符 --> <filtering>false</filtering> <directory>src/main/resources</directory> <includes> <include>config/execlude.xml</include> </includes> </resource> </resources>
6.3.使用佔位符,(假設文件位置src/main/resources/properties/log4j.properties)
.... #若是打包開發者環境,他就是D:/logs/logfile.log #若是打包測試環境,他就是D:/logs/test/logfile.log log4j.appender.File.File =${mvncfg.log.path}/logfile.log ....
搜索備註:maven如何將配置信息打到某些包下,maven如何排除配置文件,maven的includes與excludes
7.1 方法有兩種,1本身搭建私服,2.直接使用systemPath來指定(這就是我想說的)
<!-- 本地jar包 二維碼相關工具 --> <dependency> <groupId>jp.sourceforge.qrcode</groupId> <artifactId>QRCode</artifactId> <version>1.0</version> <scope>system</scope> <!-- 在這裏指定jar的路徑就能夠了,可是一般建議使用變量來配置,畢竟每一個人的路徑不必定相同 --> <systemPath>${localJarPath}/QRCode.jar</systemPath> </dependency>
但願能幫你解決問題
本文出處:https://my.oschina.net/longfong/blog/813146