ï»??xml version="1.0" encoding="utf-8" standalone="yes"?>一级二级三级在线观看,视频在线一区,一区二区三区波多野结衣在线观看 http://www.aygfsteel.com/libin2722/category/37136.html虚其心,可解天下之问åQ›ä¸“其心åQŒå¯æ²Õd¤©ä¸‹ä¹‹å­¦ï¼›é™å…¶å¿ƒï¼Œå¯æ‚Ÿå¤©ä¸‹ä¹‹ç†åQ›æ’其心åQŒå¯æˆå¤©ä¸‹ä¹‹ä¸šã€?/description>zh-cnFri, 31 Oct 2014 16:01:40 GMTFri, 31 Oct 2014 16:01:40 GMT60repositorieshttp://www.aygfsteel.com/libin2722/articles/404849.html½C¼ç‰©½C¼ç‰©Thu, 10 Oct 2013 15:08:00 GMThttp://www.aygfsteel.com/libin2722/articles/404849.htmlhttp://www.aygfsteel.com/libin2722/comments/404849.htmlhttp://www.aygfsteel.com/libin2722/articles/404849.html#Feedback0http://www.aygfsteel.com/libin2722/comments/commentRss/404849.htmlhttp://www.aygfsteel.com/libin2722/services/trackbacks/404849.html<!-- ********************************************** --> <!-- **** REPOSITORIOS DEL PROYECTO **** --> <!-- ********************************************** --> <repositories> <!-- ****** RELEASE ****** --> <repository> <id>atlassian</id> <url>http://maven.atlassian.com/repository/public</url> <releases> <enabled> true</enabled> </releases> <snapshots> <enabled> false </enabled> </snapshots> </repository> <repository> <id>maven.org.repo2</id> <name>Repository of Maven.org</name> <url>http://search.maven.org/#search</url> </repository> <repository> <id>search.maven.org</id> <name>Repository of Maven.org</name> <url>http://search.maven.org</url> </repository> <repository> <id>itextpdf.com</id> <name>Maven Repository for iText</name> <url>http://maven.itextpdf.com</url> </repository> <repository> <id>repository.jboss.com</id> <name>Jboss Repository for Maven</name> <url>http://repository.jboss.com</url> </repository> <repository> <id>snapshots.jboss.org</id> <name>Jboss Snapshot Repository for Maven</name> <url>http://snapshots.jboss.org/maven2</url> </repository> <repository> <id>java.net</id> <name>Repository of Java.net</name> <url>http://download.java.net/maven/1</url> </repository> <repository> <id>deltaset.org</id> <name>Repository of Deltaset</name> <url>http://deltaset.googlecode.com/svn/maven2</url> </repository> <repository> <id>prime.com</id> <name>Repository of PrimeFaces</name> <url>http://repository.prime.com.tr/org</url> </repository> <repository> <id>com.springsource.repository.maven.milestone</id> <name>Spring Framework Maven Milestone Releases (Maven Central Format)</name> <url>http://maven.springframework.org/milestone</url> </repository> <repository> <id>maven-repository2.dev.java.net</id> <name>Java.net Repository for Maven 2</name> <url>http://download.java.net/maven/2</url> </repository> <repository> <id>mvnrepository.com</id> <name>mvnrepository.com</name> <url>http://mvnrepository.com</url> </repository> <repository> <id>www.mvnbrowser.com</id> <name>www.mvnbrowser.com</name> <url>http://www.mvnbrowser.com</url> </repository> <repository> <id>objectweb</id> <name>Objectweb repository</name> <url>http://maven.objectweb.org/maven2</url> </repository> <repository> <id>ops4j.repository</id> <name>OPS4J Repository</name> <url>http://repository.ops4j.org/maven2</url> </repository> <repository> <id>Codehaus Snapshots</id> <url>http://snapshots.repository.codehaus.org/</url> </repository> <!-- **** SNAPSHOTS **** --> <repository> <id>apache-maven-snapshots</id> <name>Repository of Snapshots</name> <url>http://repository.apache.org/snapshots</url> </repository> <repository> <id>apache.snapshots</id> <name>ASF Maven 2 Snapshot</name> <url>http://people.apache.org/builds/struts/2.1.8.1/m2-staging-repository</url> </repository> <repository> <id>com.springsource.repository.maven.snapshot</id> <name>SpringSource Enterprise Bundle Maven Repository - SpringSource Snapshot Releases</name> <url>http://maven.springframework.org/snapshot</url> </repository> </repositories>

]]>
搭徏Mavençš„Nexus¿UæœåQŒæ–¹ä¾¿å›¢é˜Ÿç¼–ç ?/title><link>http://www.aygfsteel.com/libin2722/articles/332877.html</link><dc:creator>½C¼ç‰©</dc:creator><author>½C¼ç‰©</author><pubDate>Sat, 25 Sep 2010 16:16:00 GMT</pubDate><guid>http://www.aygfsteel.com/libin2722/articles/332877.html</guid><wfw:comment>http://www.aygfsteel.com/libin2722/comments/332877.html</wfw:comment><comments>http://www.aygfsteel.com/libin2722/articles/332877.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/libin2722/comments/commentRss/332877.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/libin2722/services/trackbacks/332877.html</trackback:ping><description><![CDATA[1、下载war包,部çÖv到tomcat中,启动tomcatåQ?br /> 2、访问:http://xxx/nexus-1.1.1/index.htmlåQ?br /> 3、用admin/admin123ç™Õd½•åQ?br /> 4、修改admin的密码,但是不要修改别的属性和修改别的用户信息<br /> 5、进入administration中的repositoriesåQŒä¾‹Æ¡ä¿®æ”¹ä¸‰ä¸ªtype是proxy的项目,ž®†å…¶Download Remote Indexes修改为trueåQ›ç„¶åŽé‚®ä»¶ä»–们,分别re-index一下;<br /> 6、将你自己机器上的manven¾~“å­˜åQˆä¸€èˆ¬æ˜¯åœ¨C:\Documents and Settings\ç™Õd½•名\.m2下面åQ‰å…¨éƒ¨æ‹·è´åˆ°/home/你的用户å?sonatype-work/nexus/storage下面的centralå’Œreleases各一份;<br /> 7、修改你本地的(一般是在C:\Documents and Settings\ç™Õd½•名\.m2下面åQ‰setting.xmlæ–‡äšgæ”ÒŽˆä¸‹é¢çš„:<br /><div id="wmqeeuq" class="dp-highlighter"><div id="wmqeeuq" class="bar"><div id="wmqeeuq" class="tools">Xml代码 </div></div><ol class="dp-xml" start="1"><li><span><span id="wmqeeuq" class="tag"><</span><span id="wmqeeuq" class="tag-name">settings</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>      <span id="wmqeeuq" class="tag"><</span><span id="wmqeeuq" class="tag-name">proxies</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>        <span id="wmqeeuq" class="tag"><</span><span id="wmqeeuq" class="tag-name">proxy</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>          <span id="wmqeeuq" class="tag"><</span><span id="wmqeeuq" class="tag-name">id</span><span id="wmqeeuq" class="tag">></span><span>normal</span><span id="wmqeeuq" class="tag"></</span><span id="wmqeeuq" class="tag-name">id</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>          <span id="wmqeeuq" class="tag"><</span><span id="wmqeeuq" class="tag-name">active</span><span id="wmqeeuq" class="tag">></span><span>true</span><span id="wmqeeuq" class="tag"></</span><span id="wmqeeuq" class="tag-name">active</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>          <span id="wmqeeuq" class="tag"><</span><span id="wmqeeuq" class="tag-name">protocol</span><span id="wmqeeuq" class="tag">></span><span>http</span><span id="wmqeeuq" class="tag"></</span><span id="wmqeeuq" class="tag-name">protocol</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>          <span id="wmqeeuq" class="tag"><</span><span id="wmqeeuq" class="tag-name">username</span><span id="wmqeeuq" class="tag">></span><span>deployment</span><span id="wmqeeuq" class="tag"></</span><span id="wmqeeuq" class="tag-name">username</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>          <span id="wmqeeuq" class="tag"><</span><span id="wmqeeuq" class="tag-name">password</span><span id="wmqeeuq" class="tag">></span><span>deploy</span><span id="wmqeeuq" class="tag"></</span><span id="wmqeeuq" class="tag-name">password</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>          <span id="wmqeeuq" class="tag"><</span><span id="wmqeeuq" class="tag-name">host</span><span id="wmqeeuq" class="tag">></span><span>172.19.0.177:8080/nexus-1.1.1</span><span id="wmqeeuq" class="tag"></</span><span id="wmqeeuq" class="tag-name">host</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>          <span id="wmqeeuq" class="tag"><</span><span id="wmqeeuq" class="tag-name">port</span><span id="wmqeeuq" class="tag">></span><span>80</span><span id="wmqeeuq" class="tag"></</span><span id="wmqeeuq" class="tag-name">port</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>          <span id="wmqeeuq" class="tag"><</span><span id="wmqeeuq" class="tag-name">nonProxyHosts</span><span id="wmqeeuq" class="tag">></span><span>172.19.0.177:8080/nexus-1.1.1</span><span id="wmqeeuq" class="tag"></</span><span id="wmqeeuq" class="tag-name">nonProxyHosts</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>        <span id="wmqeeuq" class="tag"></</span><span id="wmqeeuq" class="tag-name">proxy</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>      <span id="wmqeeuq" class="tag"></</span><span id="wmqeeuq" class="tag-name">proxies</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>      <span id="wmqeeuq" class="tag"><</span><span id="wmqeeuq" class="tag-name">servers</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>      <span id="wmqeeuq" class="tag"></</span><span id="wmqeeuq" class="tag-name">servers</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>      <span id="wmqeeuq" class="tag"><</span><span id="wmqeeuq" class="tag-name">mirrors</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>         <span id="wmqeeuq" class="tag"><</span><span id="wmqeeuq" class="tag-name">mirror</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>          <span id="wmqeeuq" class="tag"><</span><span id="wmqeeuq" class="tag-name">id</span><span id="wmqeeuq" class="tag">></span><span>nexus-public-snapshots</span><span id="wmqeeuq" class="tag"></</span><span id="wmqeeuq" class="tag-name">id</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>          <span id="wmqeeuq" class="tag"><</span><span id="wmqeeuq" class="tag-name">mirrorOf</span><span id="wmqeeuq" class="tag">></span><span>public-snapshots</span><span id="wmqeeuq" class="tag"></</span><span id="wmqeeuq" class="tag-name">mirrorOf</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>          <span id="wmqeeuq" class="tag"><</span><span id="wmqeeuq" class="tag-name">url</span><span id="wmqeeuq" class="tag">></span><span>http://172.19.0.177:8080/nexus-1.1.1/content/groups/public-snapshots</span><span id="wmqeeuq" class="tag"></</span><span id="wmqeeuq" class="tag-name">url</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>        <span id="wmqeeuq" class="tag"></</span><span id="wmqeeuq" class="tag-name">mirror</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>        <span id="wmqeeuq" class="tag"><</span><span id="wmqeeuq" class="tag-name">mirror</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>          <span id="wmqeeuq" class="comments"><!--This sends everything else to /public --></span><span>  </span></span></li><li><span>          <span id="wmqeeuq" class="tag"><</span><span id="wmqeeuq" class="tag-name">id</span><span id="wmqeeuq" class="tag">></span><span>nexus</span><span id="wmqeeuq" class="tag"></</span><span id="wmqeeuq" class="tag-name">id</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>          <span id="wmqeeuq" class="tag"><</span><span id="wmqeeuq" class="tag-name">mirrorOf</span><span id="wmqeeuq" class="tag">></span><span>*</span><span id="wmqeeuq" class="tag"></</span><span id="wmqeeuq" class="tag-name">mirrorOf</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>          <span id="wmqeeuq" class="tag"><</span><span id="wmqeeuq" class="tag-name">url</span><span id="wmqeeuq" class="tag">></span><span>http://172.19.0.177:8080/nexus-1.1.1/content/groups/public</span><span id="wmqeeuq" class="tag"></</span><span id="wmqeeuq" class="tag-name">url</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>        <span id="wmqeeuq" class="tag"></</span><span id="wmqeeuq" class="tag-name">mirror</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>      <span id="wmqeeuq" class="tag"></</span><span id="wmqeeuq" class="tag-name">mirrors</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>      <span id="wmqeeuq" class="tag"><</span><span id="wmqeeuq" class="tag-name">profiles</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>        <span id="wmqeeuq" class="tag"><</span><span id="wmqeeuq" class="tag-name">profile</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>          <span id="wmqeeuq" class="tag"><</span><span id="wmqeeuq" class="tag-name">id</span><span id="wmqeeuq" class="tag">></span><span>development</span><span id="wmqeeuq" class="tag"></</span><span id="wmqeeuq" class="tag-name">id</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>          <span id="wmqeeuq" class="tag"><</span><span id="wmqeeuq" class="tag-name">repositories</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>            <span id="wmqeeuq" class="tag"><</span><span id="wmqeeuq" class="tag-name">repository</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>              <span id="wmqeeuq" class="tag"><</span><span id="wmqeeuq" class="tag-name">id</span><span id="wmqeeuq" class="tag">></span><span>central</span><span id="wmqeeuq" class="tag"></</span><span id="wmqeeuq" class="tag-name">id</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>              <span id="wmqeeuq" class="tag"><</span><span id="wmqeeuq" class="tag-name">url</span><span id="wmqeeuq" class="tag">></span><span>http://central</span><span id="wmqeeuq" class="tag"></</span><span id="wmqeeuq" class="tag-name">url</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>              <span id="wmqeeuq" class="tag"><</span><span id="wmqeeuq" class="tag-name">releases</span><span id="wmqeeuq" class="tag">></span><span id="wmqeeuq" class="tag"><</span><span id="wmqeeuq" class="tag-name">enabled</span><span id="wmqeeuq" class="tag">></span><span>true</span><span id="wmqeeuq" class="tag"></</span><span id="wmqeeuq" class="tag-name">enabled</span><span id="wmqeeuq" class="tag">></span><span id="wmqeeuq" class="tag"></</span><span id="wmqeeuq" class="tag-name">releases</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>              <span id="wmqeeuq" class="tag"><</span><span id="wmqeeuq" class="tag-name">snapshots</span><span id="wmqeeuq" class="tag">></span><span id="wmqeeuq" class="tag"><</span><span id="wmqeeuq" class="tag-name">enabled</span><span id="wmqeeuq" class="tag">></span><span>true</span><span id="wmqeeuq" class="tag"></</span><span id="wmqeeuq" class="tag-name">enabled</span><span id="wmqeeuq" class="tag">></span><span id="wmqeeuq" class="tag"></</span><span id="wmqeeuq" class="tag-name">snapshots</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>            <span id="wmqeeuq" class="tag"></</span><span id="wmqeeuq" class="tag-name">repository</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>          <span id="wmqeeuq" class="tag"></</span><span id="wmqeeuq" class="tag-name">repositories</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>         <span id="wmqeeuq" class="tag"><</span><span id="wmqeeuq" class="tag-name">pluginRepositories</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>            <span id="wmqeeuq" class="tag"><</span><span id="wmqeeuq" class="tag-name">pluginRepository</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>              <span id="wmqeeuq" class="tag"><</span><span id="wmqeeuq" class="tag-name">id</span><span id="wmqeeuq" class="tag">></span><span>central</span><span id="wmqeeuq" class="tag"></</span><span id="wmqeeuq" class="tag-name">id</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>              <span id="wmqeeuq" class="tag"><</span><span id="wmqeeuq" class="tag-name">url</span><span id="wmqeeuq" class="tag">></span><span>http://central</span><span id="wmqeeuq" class="tag"></</span><span id="wmqeeuq" class="tag-name">url</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>              <span id="wmqeeuq" class="tag"><</span><span id="wmqeeuq" class="tag-name">releases</span><span id="wmqeeuq" class="tag">></span><span id="wmqeeuq" class="tag"><</span><span id="wmqeeuq" class="tag-name">enabled</span><span id="wmqeeuq" class="tag">></span><span>true</span><span id="wmqeeuq" class="tag"></</span><span id="wmqeeuq" class="tag-name">enabled</span><span id="wmqeeuq" class="tag">></span><span id="wmqeeuq" class="tag"></</span><span id="wmqeeuq" class="tag-name">releases</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>              <span id="wmqeeuq" class="tag"><</span><span id="wmqeeuq" class="tag-name">snapshots</span><span id="wmqeeuq" class="tag">></span><span id="wmqeeuq" class="tag"><</span><span id="wmqeeuq" class="tag-name">enabled</span><span id="wmqeeuq" class="tag">></span><span>true</span><span id="wmqeeuq" class="tag"></</span><span id="wmqeeuq" class="tag-name">enabled</span><span id="wmqeeuq" class="tag">></span><span id="wmqeeuq" class="tag"></</span><span id="wmqeeuq" class="tag-name">snapshots</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>            <span id="wmqeeuq" class="tag"></</span><span id="wmqeeuq" class="tag-name">pluginRepository</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>          <span id="wmqeeuq" class="tag"></</span><span id="wmqeeuq" class="tag-name">pluginRepositories</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>        <span id="wmqeeuq" class="tag"></</span><span id="wmqeeuq" class="tag-name">profile</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>        <span id="wmqeeuq" class="tag"><</span><span id="wmqeeuq" class="tag-name">profile</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>          <span id="wmqeeuq" class="tag"><</span><span id="wmqeeuq" class="tag-name">id</span><span id="wmqeeuq" class="tag">></span><span>public-snapshots</span><span id="wmqeeuq" class="tag"></</span><span id="wmqeeuq" class="tag-name">id</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>          <span id="wmqeeuq" class="tag"><</span><span id="wmqeeuq" class="tag-name">repositories</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>            <span id="wmqeeuq" class="tag"><</span><span id="wmqeeuq" class="tag-name">repository</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>              <span id="wmqeeuq" class="tag"><</span><span id="wmqeeuq" class="tag-name">id</span><span id="wmqeeuq" class="tag">></span><span>public-snapshots</span><span id="wmqeeuq" class="tag"></</span><span id="wmqeeuq" class="tag-name">id</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>              <span id="wmqeeuq" class="tag"><</span><span id="wmqeeuq" class="tag-name">url</span><span id="wmqeeuq" class="tag">></span><span>http://public-snapshots</span><span id="wmqeeuq" class="tag"></</span><span id="wmqeeuq" class="tag-name">url</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>              <span id="wmqeeuq" class="tag"><</span><span id="wmqeeuq" class="tag-name">releases</span><span id="wmqeeuq" class="tag">></span><span id="wmqeeuq" class="tag"><</span><span id="wmqeeuq" class="tag-name">enabled</span><span id="wmqeeuq" class="tag">></span><span>false</span><span id="wmqeeuq" class="tag"></</span><span id="wmqeeuq" class="tag-name">enabled</span><span id="wmqeeuq" class="tag">></span><span id="wmqeeuq" class="tag"></</span><span id="wmqeeuq" class="tag-name">releases</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>              <span id="wmqeeuq" class="tag"><</span><span id="wmqeeuq" class="tag-name">snapshots</span><span id="wmqeeuq" class="tag">></span><span id="wmqeeuq" class="tag"><</span><span id="wmqeeuq" class="tag-name">enabled</span><span id="wmqeeuq" class="tag">></span><span>true</span><span id="wmqeeuq" class="tag"></</span><span id="wmqeeuq" class="tag-name">enabled</span><span id="wmqeeuq" class="tag">></span><span id="wmqeeuq" class="tag"></</span><span id="wmqeeuq" class="tag-name">snapshots</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>            <span id="wmqeeuq" class="tag"></</span><span id="wmqeeuq" class="tag-name">repository</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>          <span id="wmqeeuq" class="tag"></</span><span id="wmqeeuq" class="tag-name">repositories</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>         <span id="wmqeeuq" class="tag"><</span><span id="wmqeeuq" class="tag-name">pluginRepositories</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>            <span id="wmqeeuq" class="tag"><</span><span id="wmqeeuq" class="tag-name">pluginRepository</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>              <span id="wmqeeuq" class="tag"><</span><span id="wmqeeuq" class="tag-name">id</span><span id="wmqeeuq" class="tag">></span><span>public-snapshots</span><span id="wmqeeuq" class="tag"></</span><span id="wmqeeuq" class="tag-name">id</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>              <span id="wmqeeuq" class="tag"><</span><span id="wmqeeuq" class="tag-name">url</span><span id="wmqeeuq" class="tag">></span><span>http://public-snapshots</span><span id="wmqeeuq" class="tag"></</span><span id="wmqeeuq" class="tag-name">url</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>              <span id="wmqeeuq" class="tag"><</span><span id="wmqeeuq" class="tag-name">releases</span><span id="wmqeeuq" class="tag">></span><span id="wmqeeuq" class="tag"><</span><span id="wmqeeuq" class="tag-name">enabled</span><span id="wmqeeuq" class="tag">></span><span>false</span><span id="wmqeeuq" class="tag"></</span><span id="wmqeeuq" class="tag-name">enabled</span><span id="wmqeeuq" class="tag">></span><span id="wmqeeuq" class="tag"></</span><span id="wmqeeuq" class="tag-name">releases</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>              <span id="wmqeeuq" class="tag"><</span><span id="wmqeeuq" class="tag-name">snapshots</span><span id="wmqeeuq" class="tag">></span><span id="wmqeeuq" class="tag"><</span><span id="wmqeeuq" class="tag-name">enabled</span><span id="wmqeeuq" class="tag">></span><span>true</span><span id="wmqeeuq" class="tag"></</span><span id="wmqeeuq" class="tag-name">enabled</span><span id="wmqeeuq" class="tag">></span><span id="wmqeeuq" class="tag"></</span><span id="wmqeeuq" class="tag-name">snapshots</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>            <span id="wmqeeuq" class="tag"></</span><span id="wmqeeuq" class="tag-name">pluginRepository</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>          <span id="wmqeeuq" class="tag"></</span><span id="wmqeeuq" class="tag-name">pluginRepositories</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>        <span id="wmqeeuq" class="tag"></</span><span id="wmqeeuq" class="tag-name">profile</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>      <span id="wmqeeuq" class="tag"></</span><span id="wmqeeuq" class="tag-name">profiles</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>        <span id="wmqeeuq" class="tag"><</span><span id="wmqeeuq" class="tag-name">activeProfiles</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>        <span id="wmqeeuq" class="tag"><</span><span id="wmqeeuq" class="tag-name">activeProfile</span><span id="wmqeeuq" class="tag">></span><span>development</span><span id="wmqeeuq" class="tag"></</span><span id="wmqeeuq" class="tag-name">activeProfile</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>      <span id="wmqeeuq" class="tag"></</span><span id="wmqeeuq" class="tag-name">activeProfiles</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span><span id="wmqeeuq" class="tag"></</span><span id="wmqeeuq" class="tag-name">settings</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li></ol></div>   <p>    ž®?72.19.0.177地址修改ä¸ÞZ½ è‡ªå·±çš„æœåŠ¡å™¨åœ°å€<br />     <br /> 8、在你的™å¹ç›®ä¸­çš„pom.xml中增加一ŒDµï¼š<br /></p><div id="wmqeeuq" class="dp-highlighter"><div id="wmqeeuq" class="bar"><div id="wmqeeuq" class="tools">Xml代码 </div></div><ol class="dp-xml" start="1"><li><span><span id="wmqeeuq" class="tag"><</span><span id="wmqeeuq" class="tag-name">distributionManagement</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>        <span id="wmqeeuq" class="tag"><</span><span id="wmqeeuq" class="tag-name">repository</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>            <span id="wmqeeuq" class="tag"><</span><span id="wmqeeuq" class="tag-name">id</span><span id="wmqeeuq" class="tag">></span><span>repo</span><span id="wmqeeuq" class="tag"></</span><span id="wmqeeuq" class="tag-name">id</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>            <span id="wmqeeuq" class="tag"><</span><span id="wmqeeuq" class="tag-name">name</span><span id="wmqeeuq" class="tag">></span><span>public</span><span id="wmqeeuq" class="tag"></</span><span id="wmqeeuq" class="tag-name">name</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>            <span id="wmqeeuq" class="tag"><</span><span id="wmqeeuq" class="tag-name">url</span><span id="wmqeeuq" class="tag">></span><span>http://172.19.0.177:8080/nexus-1.1.1/content/repositories/releases</span><span id="wmqeeuq" class="tag"></</span><span id="wmqeeuq" class="tag-name">url</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>        <span id="wmqeeuq" class="tag"></</span><span id="wmqeeuq" class="tag-name">repository</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>        <span id="wmqeeuq" class="tag"><</span><span id="wmqeeuq" class="tag-name">snapshotRepository</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>            <span id="wmqeeuq" class="tag"><</span><span id="wmqeeuq" class="tag-name">id</span><span id="wmqeeuq" class="tag">></span><span>Snapshots</span><span id="wmqeeuq" class="tag"></</span><span id="wmqeeuq" class="tag-name">id</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>            <span id="wmqeeuq" class="tag"><</span><span id="wmqeeuq" class="tag-name">name</span><span id="wmqeeuq" class="tag">></span><span>Snapshots</span><span id="wmqeeuq" class="tag"></</span><span id="wmqeeuq" class="tag-name">name</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>            <span id="wmqeeuq" class="tag"><</span><span id="wmqeeuq" class="tag-name">url</span><span id="wmqeeuq" class="tag">></span><span>http://172.19.0.177:8080/nexus-1.1.1/content/repositories/snapshots</span><span id="wmqeeuq" class="tag"></</span><span id="wmqeeuq" class="tag-name">url</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>        <span id="wmqeeuq" class="tag"></</span><span id="wmqeeuq" class="tag-name">snapshotRepository</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li><li><span>    <span id="wmqeeuq" class="tag"></</span><span id="wmqeeuq" class="tag-name">distributionManagement</span><span id="wmqeeuq" class="tag">></span><span>  </span></span></li></ol></div>   <p><br /> ˜q™æ ·ä¸€æ¥ç»˜q‡æˆ‘的测试,如果你在没有局域网的环境中åQˆä¹Ÿž®±æ˜¯æ²¡åŠžæ³•è®¿é—®ä½ çš„ç§æœï¼‰åQŒåªè¦å°†pom里面的那ŒDµåˆ é™¤å°±å¯ä»¥äº†ã€?/p><img src ="http://www.aygfsteel.com/libin2722/aggbug/332877.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/libin2722/" target="_blank">½C¼ç‰©</a> 2010-09-26 00:16 <a href="http://www.aygfsteel.com/libin2722/articles/332877.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Maven使用deploy命ä×o部çÖv构徏http://www.aygfsteel.com/libin2722/articles/332876.html½C¼ç‰©½C¼ç‰©Sat, 25 Sep 2010 16:06:00 GMThttp://www.aygfsteel.com/libin2722/articles/332876.htmlhttp://www.aygfsteel.com/libin2722/comments/332876.htmlhttp://www.aygfsteel.com/libin2722/articles/332876.html#Feedback1http://www.aygfsteel.com/libin2722/comments/commentRss/332876.htmlhttp://www.aygfsteel.com/libin2722/services/trackbacks/332876.html
具体怎样使用deploy命ä×o部çÖvæž„äšg到nexus服务器上可以参考经典的《Maven Definitive Guideã€?Maven操作指南)åQŒä¹¦ä¸­çš„16.7节里面讲解的非常详细。假设我们在™å¹ç›®pom.xmlæ–‡äšg中对maven服务器的讄¡½®ä¿¡æ¯å¦‚下åQ?br /> <distributionManagement>
<repository>
<id>nexus-releases</id>
<name>Local Nexus Repository</name>
<url>http://192.168.1.99:8081/content/repositories/releases</url>
</repository>
<snapshotRepository>
<id>nexus-snapshots</id>
<name>Local Nexus Repository</name>
<url>http://192.168.1.99:8081/content/repositories/snapshots</url>
</snapshotRepository>
</distributionManagement>

˜q™é‡Œæˆ‘要说的是在使用的过½E‹ä¸­é‡åˆ°çš„几个都是“Failed to transfer file”错误,错误信息如下格式åQ?br />
Error deploying artifact: Failed to transfer file:�Return code is:4xx

也就是说前面错误的信息都是一æ ïLš„åQŒåªæ˜¯åŽé¢è¿”回的HTTP状态数字不同ã€?br />
1. Return code is: 405
˜q™ä¸ªé—®é¢˜å®Ïxˆ‘查了两个多小时才发现错误的根源,½Ž€å•的错误ž®±æ˜¯åœ¨Maven执行åˆîC¸Šä¼ æ–‡ä»¶åˆ°æœåŠ¡å™¨çš„æ—¶å€™å‡ºçŽîC¸€ä¸ªHTTP 405错误。开始的时候æ€ÖM»¥ä¸ºæ˜¯Maven本èín的问题,所以在˜q™ä¸ªä¸Šé¢‹¹ªè´¹äº†ä¸ž®‘时间。后来仔¾l†æŸ¥äº?05错误的含义是“用来访问本™åµé¢çš?HTTP æ–ÒŽ³•ä¸è¢«å…è®¸â€ï¼Œæœ€åŽç»ˆäºŽå‘çŽ°æ˜¯å› äØ“å‰é¢repository的地址写错了,或者是端口写错åQŒæˆ–者是地址中的某个单词拼错了,反正原因ž®±æ˜¯ repository的地址写错了ã€?br />
2. Return code is: 401或者Return code is: 403
其实403错误ž®±æ˜¯â€œç¦æ­¢è®¿é—®â€çš„含义åQŒæ‰€ä»¥é—®é¢˜çš„æ ÒŽºè‚¯å®šåœ¨æŽˆæƒä¸Šé¢ã€‚Maven在默认情况下会ä‹É用deployment帐号(默认密码deploy) ç™Õd½•的系¾lŸï¼Œä½†æ˜¯å…³é”®çš„Nexus中Releases仓库默认的Deployment Policy是“Disable Redeploy”,所以无法部¾|²çš„问题在这个地方,æ–ÒŽ³•æ˜¯å°†å…¶ä¿®æ”¹äØ“â€œAllow Redeploy”就可以了ã€?br />

到这里还没有¾l“束åQŒå› ä¸ºå¦‚果直接按照上面的讄¡½®çš„话会有一个安全问题,那就是这æ äh‰€æœ‰çš„开发äh员都可以ž®†æž„仉™ƒ¨¾|²åˆ°Nexusçš„releases仓库ä¸? 了,旉™—´é•¿äº†ä¼šå¯¼è‡´è¿™ä¸ªä»“库中非常乱,˜q™ä¹Ÿåº”该是nexusä¸ÞZ»€ä¹ˆé»˜è®¤æƒ…况下ž®†Release仓库的发布权限关闭的原因了。解册™¿™ä¸ªé—®é¢˜çš„æ•´ä½“思èµ\ž®±æ˜¯åœ? 部çÖvæž„äšg的时候需要ä‹É用用户名和密码登录,操作如下åQ?br /> (1) 首先ž®†Releases仓库默认的Deployment Policy修改为“Allow Redeploy”;
(2) 然后在右边的Security下面的Users中,修改deployment帐号的密码,æ–ÒŽ³•是在帐号上右键,然后选择“Set Passwordâ€?PSåQšè¿™ä¸ªæ“ä½œæˆ‘找了好久åQŒåŽæ¥æ— æ„ä¸­å³é”®æ‰æ‰¾åˆŽÍ¼Œå‘µå‘µ~~)åQ?br />
(3) ˜q™ä¸ªæ—¶å€™å¦‚果直接执è¡?mvn deploy 命ä×o的话ž®±åˆä¼šå‡ºçŽ?01错误åQŒè¿˜æœ‰ä¸€æ­¥å°±æ˜¯å°†å¯†ç è®„¡½®åˆ°Maven settings.xml中。打开settings.xmlæ–‡äšg(${user.home}/.m/settings.xmlæˆ?{m2_home} /conf/settings.xml)åQŒæ‰¾åˆ?lt;servers>åQŒç„¶åŽä¿®æ”¹ä¿¡æ¯å¦‚下:
<server>
<id>nexus-releases</id>
<username>deployment</username>
<password>deploydv89</password>
</server>

<server>
<id>nexus-snapshots</id>
<username>deployment</username>
<password>deploydv89</password>
</server>

˜q™é‡Œéœ€è¦ç‰¹åˆ«è¯´æ˜Žä¸€å¥çš„æ˜¯é‡Œé¢çš„id必须和你在项目pom.xmlæ–‡äšg中distributionManagement下面讄¡½®çš„仓库id一è‡ß_¼å½“然了,˜q™ä¸ªé‡Œé¢ä½ ä¹Ÿå¯ä»¥è®„¡½®admin帐号åQŒæˆ–者参照deployment的权限手动添加新的帐åïL­‰½{‰éƒ½æ˜¯å¯ä»¥çš„ã€?br />
当然åQŒé—®é¢˜åˆ°˜q™é‡Œå·²ç»å¾—到了比较完¾ŸŽçš„解放åQŒä½†æ˜?/font> 如果有äh˜q˜è¦è¾ƒçœŸçš„话会想到帐åïLš„密码直接攑ֈ°é…ç½®æ–‡äšgé‡Œé¢ä¸æ˜¯å¾ˆå®‰å…¨ã€‚å…¶å®žåªè¦è¿™é‡Œä¸å»ø™®®æ”¾admin帐号åQŒè€Œdeployment是无法登录的。如果非要更安全一些的话,也可以ä‹É用Maven 2.1.0之后所提供的密码加密功能,操作的步骤如下:
(1) 使用“mvn –encrypt-master-password xxx”或“mvn –emp xxx”创å»ÞZ¸€ä¸ªä¸»å¯†é’¥åQŒåŽé¢çš„xxxž®±æ˜¯ä½ æ‰€è¦è®¾¾|®çš„密钥的内容,˜q™ä¸ªå¯†é’¥ä¸»è¦ç”¨äºŽåŽé¢åŠ å¯†å¯†ç æ¥ç”¨çš„ï¼›å‘½ä×o执行之后会äñ”生一个类ä¼? {jSMOWnoPFgsHVpMvz5VrIt5kRbzGpI8u+9EF1iFQyJQ=}形式的字½W¦ä¸²ã€?/font>
(2) åœ?{user.home}/.m/目录下创å»ÞZ¸€ä¸ªåä¸ºsettings-security.xmlæ–‡äšgåQŒæˆ‘们将刚刚产生的主密钥攑ֈ°˜q™ä¸ªæ–‡äšg中,文äšg的内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<settingsSecurity>
<master>{jSMOWnoPFgsHVpMvz5VrIt5kRbzGpI8u+9EF1iFQyJQ=}</master>
</settingsSecurity>

注意åQŒè¿™ä¸ªsettings-security.xmlæ–‡äšg一定要攑֜¨${user.home}/.m/目录下面åQŒè€Œä¸èƒ½æ”¾åœ?{m2_home}/conf目录下!
(3) 使用“mvn –encrypt-password xxx”或“mvn –ep xxx”命令对帐号的密码进行加密,后面的xxxž®±æ˜¯å¸å·çš„密码,加密之后依然会äñ”生一个“{xxx}”åŞ式的字符ä¸ÔŒ¼Œž®†è¿™ä¸ªå­—½W¦ä¸²æ›¿æ¢ä¸Šé¢ settings.xmlæ–‡äšg中的server下面的password节点内容卛_¯ã€?/font>
˜q˜æœ‰ä¸€¿Uæ›´å®‰å…¨çš„æ–¹å¼ï¼Œž®±æ˜¯ž®†ä¸»å¯†é’¥æ”‘Öˆ°U盘里面,具体的操作可以看下面的参考资料ã€?/font>

3. Return code is: 400
400错误的含义是“错误的è¯äh±‚”,在这里的原因是往往是没有部¾|²åˆ°nexus的仓库中。nexusçš„repository分三¿Uç±»åž‹ï¼šHostedã€? Proxyå’ŒVirtualåQŒå¦å¤–还有一个repository group(仓库¾l?用于对多个仓库进行组合。部¾|²çš„æ—¶å€™åªèƒ½éƒ¨¾|²åˆ°Hosted¾cÕdž‹çš„仓库中åQŒå¦‚果是其他¾cÕdž‹ž®×ƒ¼šå‡ºçް˜q™ä¸ª400错误ã€?br />
˜q˜æœ‰ä¸€¿Uæƒ…况也会出çŽ?00错误åQŒå°±æ˜¯é»˜è®¤æƒ…况下部çÖvæž„äšg到Releases仓库中有时也会出çŽ?00错误åQŒè¿™ä¸ªåŽŸå› å°±åƒä¸Šé¢æåˆ°çš„é‚£æ ·åQŒNexusä¸? Releases仓库默认的Deployment Policy是“Disable Redeploy”,所以无è®ÞZ½ åœ¨settings.xmlæ–‡äšg中将serverçš„username讄¡½®ä¸ºdeployment˜q˜æ˜¯ä½¿ç”¨admin都是æ—? 法部¾|²çš„åQŒå°±ä¼šå‡ºçŽ°è¿™ä¸?00错误。这个问题也困扰了我好长旉™—´åQŒè€Œä¸”我还看到¾|‘上有äh说admin没有部çÖvæž„äšg的权限,˜q™ä¸ªæ˜¯ä¸å¯¹çš„。修改的æ–ÒŽ³•可以å? 考上面第2条的做法ã€?br />

mvn deploy -Dmaven.test.skip=true




<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
    xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation
="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
    
<localRepository>F:\m2Repository</localRepository>
    
    
<pluginGroups>
    
</pluginGroups>

    
<proxies>

    
</proxies>
    
    
<servers>
        
<server>
            
<id>nexus-releases</id>
            
<username>admin</username>
            
<password>admin123</password>
        
</server>

        
<server>
            
<id>nexus-snapshots</id>
            
<username>admin</username>
            
<password>admin123</password>
        
</server>
    
</servers>
    

    
<mirrors>
        
<mirror>
            
<id>nexus</id>
            
<mirrorOf>*</mirrorOf>
            
<name>Nexus lirenkj</name>
            
<url>http://nexus.lirenkj.com/content/groups/public/</url>
        
</mirror>
    
</mirrors>

    
<profiles>
        
<profile>
            
<id>dev</id>

            
<activation>
                
<jdk>1.7</jdk>
            
</activation>

            
<repositories>
                
<repository>
                    
<id>nexus</id>
                    
<name>local private nexus</name>
                    
<url>http://nexus.lirenkj.com/content/groups/public/</url>
                    
<releases>
                        
<enabled>true</enabled>
                    
</releases>
                    
<snapshots>
                        
<enabled>true</enabled>
                    
</snapshots>
                
</repository>
            
</repositories>
            
<pluginRepositories>
                
<pluginRepository>
                    
<id>nexus</id>
                    
<name>local private nexus</name>
                    
<url>http://nexus.lirenkj.com/content/groups/public/</url>
                    
<releases>
                        
<enabled>true</enabled>
                    
</releases>
                    
<snapshots>
                        
<enabled>true</enabled>
                    
</snapshots>
                
</pluginRepository>
            
</pluginRepositories>
        
</profile>
    
</profiles>

    
<activeProfiles>
        
<activeProfile>dev</activeProfile>
    
</activeProfiles>
</settings>



]]>
maven2的主要配¾|®pom.xmlhttp://www.aygfsteel.com/libin2722/articles/319958.html½C¼ç‰©½C¼ç‰©Mon, 03 May 2010 08:55:00 GMThttp://www.aygfsteel.com/libin2722/articles/319958.htmlhttp://www.aygfsteel.com/libin2722/comments/319958.htmlhttp://www.aygfsteel.com/libin2722/articles/319958.html#Feedback0http://www.aygfsteel.com/libin2722/comments/commentRss/319958.htmlhttp://www.aygfsteel.com/libin2722/services/trackbacks/319958.htmlmaven™å¹ç›®åQŒä‹É用pom.xml来实现。主要描˜qîCº†™å¹ç›®åQšåŒ…括配¾|®æ–‡ä»Óž¼›å¼€å‘者需要遵循的规则åQŒç¼ºé™ïL®¡ç†ç³»¾lŸï¼Œ¾l„织和licensesåQŒé¡¹ç›®çš„urlåQŒé¡¹ç›®çš„依赖性,以及其他所有的™å¹ç›®ç›¸å…³å› ç´ ã€?br />快速察看:
Java代码 复制代码
  1. <project>   
  2.     <modelVersion>4.0.0</modelVersion>   
  3.   
  4.     <!-- The Basics -->   
  5.     <groupId>...</groupId>   
  6.     <artifactId>...</artifactId>   
  7.     <version>...</version>   
  8.     <packaging>...</packaging>   
  9.     <dependencies>...</dependencies>   
  10.     <parent>...</parent>   
  11.     <dependencyManagement>...</dependencyManagement>   
  12.     <modules>...</modules>   
  13.     <properties>...</properties>   
  14.   
  15.     <!-- Build Settings -->   
  16.     <build>...</build>   
  17.     <reporting>...</reporting>   
  18.   
  19.     <!-- More Project Information -->   
  20.     <name>...</name>   
  21.     <description>...</description>   
  22.     <url>...</url>   
  23.     <inceptionYear>...</inceptionYear>   
  24.     <licenses>...</licenses>   
  25.     <organization>...</organization>   
  26.     <developers>...</developers>   
  27.     <contributors>...</contributors>   
  28.   
  29.     <!-- Environment Settings -->   
  30.     <issueManagement>...</issueManagement>   
  31.     <ciManagement>...</ciManagement>   
  32.     <mailingLists>...</mailingLists>   
  33.     <scm>...</scm>   
  34.     <prerequisites>...</prerequisites>   
  35.     <repositories>...</repositories>   
  36.     <pluginRepositories>...</pluginRepositories>   
  37.     <distributionManagement>...</distributionManagement>   
  38.     <profiles>...</profiles>   
  39. </project>  
 

 

 

 

 

 

 

Java代码 复制代码
  1. <!-- The Basics -->   
  2.     <groupId>...</groupId>   
  3.     <artifactId>...</artifactId>   
  4.     <version>...</version>   
  5.     <packaging>...</packaging>   
  6.     <dependencies>...</dependencies>   
  7.     <parent>...</parent>   
  8.     <dependencyManagement>...</dependencyManagement>   
  9.     <modules>...</modules>   
  10.     <properties>...</properties>  
 



基本内容åQ?br />    POM包括了所有的™å¹ç›®ä¿¡æ¯ã€?br />maven 相关åQ?br />pom定义了最ž®çš„maven2元素åQŒå…è®¸groupId,artifactId,version。所有需要的元素

groupId:™å¹ç›®æˆ–者组¾l‡çš„唯一标志åQŒåƈ且配¾|®æ—¶ç”Ÿæˆçš„èµ\径也是由此生成,如org.codehaus.mojo生成的相对èµ\径䨓åQ?org/codehaus/mojo 
artifactId: ™å¹ç›®çš„通用名称 
version:™å¹ç›®çš„版本Â?br />packaging: 打包的机åˆÓž¼Œå¦‚pom, jar, maven-plugin, ejb, war, ear, rar, par 
classifier: 分类
POM关系åQ?br />主要ä¸ÞZ¾èµ–,¾l§æ‰¿åQŒåˆæˆ?br />  依赖关系åQ?br />  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.0</version>
      <type>jar</type>
      <scope>test</scope>
      <optional>true</optional>
    </dependency>
    ...
  </dependencies>

groupId, artifactId, version:描述了依赖的™å¹ç›®å”¯ä¸€æ ‡å¿—
可以通过以下方式˜q›è¡Œå®‰è£…åQ?br />
使用以下的命令安装: 
mvn install:install-file ?Dfile=non-maven-proj.jar ?DgroupId=some.group ?DartifactId=non-maven-proj ?Dversion=1 
创徏自己的库,òq‰™…¾|®ï¼Œä½¿ç”¨deploy:deploy-file 
讄¡½®æ­¤ä¾èµ–èŒƒå›´äØ“systemåQŒå®šä¹‰ä¸€ä¸ªç³»¾lŸèµ\径。不提倡ã€?br />type:相应的依赖äñ”品包形式åQŒå¦‚jaråQŒwar 
scope:用于限制相应的依赖范å›ß_¼ŒåŒ…括以下的几¿Uå˜é‡ï¼š
compile åQšé»˜è®¤èŒƒå›ß_¼Œç”¨äºŽ¾~–译 
providedåQšç±»ä¼égºŽ¾~–译åQŒä½†æ”¯æŒä½ æœŸå¾…jdk或者容器提供,¾cÖM¼¼äºŽclasspath 
runtime:在执行时åQŒéœ€è¦ä‹É用Â?br />test:用于testä»ÕdŠ¡æ—¶ä‹É用Â?br />system:需要外在提供相应得元素。通过systemPath来取å¾?br />systemPath:Â ä»…ç”¨äºŽèŒƒå›´äØ“system。提供相应的路径 
optional: 标注可选,当项目自íw«ä¹Ÿæ˜¯ä¾èµ–时。用于连¾l­ä¾èµ–时使用
   独占性   �br />   外在告诉maven你只包括指定的项目,不包括相关的依赖。此因素主要用于解决版本冲突问题
  <dependencies>
    <dependency>
      <groupId>org.apache.maven</groupId>
      <artifactId>maven-embedder</artifactId>
      <version>2.0</version>
      <exclusions>
        <exclusion>
          <groupId>org.apache.maven</groupId>
          <artifactId>maven-core</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
表示™å¹ç›®maven-embedder需要项ç›?span class="hilite1">maven-coreåQŒä½†æˆ‘们不想引用maven-core

¾l§æ‰¿å…³ç³»
    另一个强大的变化,maven带来的是™å¹ç›®¾l§æ‰¿ã€‚主要的讄¡½®åQ?br />定义爉™¡¹ç›?br /><project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>my-parent</artifactId>
  <version>2.0</version>
  <packaging>pom</packaging>
</project>
    packaging ¾cÕdž‹åQŒéœ€è¦pom用于parent和合成多个项目。我们需要增加相应的值给父pomåQŒç”¨äºŽå­™å¹ç›®¾l§æ‰¿ã€‚主要的元素如下åQ?br />
依赖型Â?br />开发者和合作者Â?br />插äšg列表 
报表列表 
插äšg执行使用相应的匹配ids 
插äšg配置 
子项目配¾|?br /><project>
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>my-parent</artifactId>
    <version>2.0</version>
    <relativePath>../my-parent</relativePath>
  </parent>
  <artifactId>my-project</artifactId>
</project>
relativePath可以不需要,但是用于指明parent的目录,用于快速查询�br />
dependencyManagementåQ?br />用于爉™¡¹ç›®é…¾|®å…±åŒçš„依赖关系åQŒä¸»è¦é…¾|®ä¾èµ–包相同因素åQŒå¦‚版本åQŒscopeã€?br />
合成åQˆæˆ–者多个模块)
    一个项目有多个模块åQŒä¹Ÿå«åšå¤šé‡æ¨¡å—åQŒæˆ–者合成项目ã€?br />如下的定义:
<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>my-parent</artifactId>
  <version>2.0</version>
  <modules>
    <module>my-project1<module>
    <module>my-project2<module>
  </modules>
</project>

 

 

 

 

Java代码 复制代码
  1. <!-- Build Settings -->   
  2.     <build>...</build>   
  3.     <reporting>...</reporting>  
 


build 讄¡½®
    主要用于¾~–译讄¡½®åQŒåŒ…括两个主要的元素åQŒbuildå’Œreport
  build
Â Â Â Â ä¸»è¦åˆ†äØ“ä¸¤éƒ¨åˆ†ï¼ŒåŸºæœ¬å…ƒç´ å’Œæ‰©å±•å…ƒç´ é›†å?br />注意åQšåŒ…括项目buildå’Œprofile build
<project>
  <!-- "Project Build" contains more elements than just the BaseBuild set -->
  <build>...</build>
  <profiles>
    <profile>
      <!-- "Profile Build" contains a subset of "Project Build"s elements -->
      <build>...</build>
    </profile>
  </profiles>
</project>

基本元素
<build>
  <defaultGoal>install</defaultGoal>
  <directory>${basedir}/target</directory>
  <finalName>${artifactId}-${version}</finalName>
  <filters>
    <filter>filters/filter1.properties</filter>
  </filters>
  ...
</build>


defaultGoal: 定义默认的目标或者阶ŒDüc€‚如install 
directory: ¾~–译输出的目录Â?br />finalName: 生成最后的文äšg的样式Â?br />filter: 定义˜q‡æ×oåQŒç”¨äºŽæ›¿æ¢ç›¸åº”的属性文ä»Óž¼Œä½¿ç”¨maven定义的属性。设¾|®æ‰€æœ‰placeholdçš„å€?br />
资源(resources)
    你项目中需要指定的资源。如spring配置文äšg,log4j.properties
<project>
  <build>
    ...
    <resources>
      <resource>
        <targetPath>META-INF/plexus</targetPath>
        <filtering>false</filtering>
        <directory>${basedir}/src/main/plexus</directory>
        <includes>
          <include>configuration.xml</include>
        </includes>
        <excludes>
          <exclude>**/*.properties</exclude>
        </excludes>
      </resource>
    </resources>
    <testResources>
      ...
    </testResources>
    ...
  </build>
</project>


resources: resource的列表,用于包括所有的资源 
targetPath: 指定目标路径åQŒç”¨äºŽæ”¾¾|®èµ„源,用于build 
filtering: 是否替换资源中的属性placehold 
directory: 资源所在的位置 
includes: 样式åQŒåŒ…括那些资源Â?br />excludes: 排除的资源Â?br />testResources: ‹¹‹è¯•资源列表
插äšg
  在buildæ—Óž¼Œæ‰§è¡Œçš„æ’ä»Óž¼Œæ¯”较有用的部分,如ä‹É用jdk 5.0¾~–译½{‰ç­‰
<project>
  <build>
    ...
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <version>2.0</version>
        <extensions>false</extensions>
        <inherited>true</inherited>
        <configuration>
          <classifier>test</classifier>
        </configuration>
        <dependencies>...</dependencies>
        <executions>...</executions>
      </plugin>
    </plugins>
  </build>
</project>

extensions: true or falseåQŒæ˜¯å¦è£…载插件扩展。默认false 
inherited: true or falseåQŒæ˜¯å¦æ­¤æ’äšg配置ž®†ä¼šåº”用于pomsåQŒé‚£äº›ç‘ô承于此的™å¹ç›®Â 
configuration: 指定插äšg配置 
dependencies: 插äšg需要依赖的包Â?br />executions: 用于配置execution目标åQŒä¸€ä¸ªæ’件可以有多个目标ã€?br />如下åQ?br />    <plugin>
        <artifactId>maven-antrun-plugin</artifactId>

        <executions>
          <execution>
            <id>echodir</id>
            <goals>
              <goal>run</goal>
            </goals>
            <phase>verify</phase>
            <inherited>false</inherited>
            <configuration>
              <tasks>
                <echo>Build Dir: ${project.build.directory}</echo>
              </tasks>
            </configuration>
          </execution>
        </executions>
      </plugin>
  说明åQ?br />
id:规定execution 的唯一标志 
goals: 表示目标 
phase: 表示阶段åQŒç›®æ ‡å°†ä¼šåœ¨ä»€ä¹ˆé˜¶ŒD‰|‰§è¡ŒÂ?br />inherited:Â å’Œä¸Šé¢çš„å…ƒç´ ä¸€æ øP¼Œè®„¡½®false mavenž®†ä¼šæ‹’绝执行¾l§æ‰¿¾l™å­æ’äšg 
configuration: 表示此执行的配置属�br />
插äšg½Ž¡ç†
    pluginManagementåQšæ’ä»¶ç®¡ç†ä»¥åŒæ ·çš„æ–¹å¼åŒ…æ‹¬æ’ä»¶å…ƒç´ ï¼Œç”¨äºŽåœ¨ç‰¹å®šçš„™å¹ç›®ä¸­é…¾|®ã€‚所有ç‘ô承于此项目的子项目都能ä‹É用。主要定义插件的共同元素

扩展元素集合
主要包括以下的元素:
Directories
用于讄¡½®å„种目录¾l“æž„åQŒå¦‚下:
  <build>
    <sourceDirectory>${basedir}/src/main/java</sourceDirectory>
    <scriptSourceDirectory>${basedir}/src/main/scripts</scriptSourceDirectory>
    <testSourceDirectory>${basedir}/src/test/java</testSourceDirectory>
    <outputDirectory>${basedir}/target/classes</outputDirectory>
    <testOutputDirectory>${basedir}/target/test-classes</testOutputDirectory>
    ...
  </build>

Extensions

表示需要扩展的插äšgåQŒå¿…™åÕdŒ…括进相应的build路径ã€?br />
<project>
  <build>
    ...
    <extensions>
      <extension>
        <groupId>org.apache.maven.wagon</groupId>
        <artifactId>wagon-ftp</artifactId>
        <version>1.0-alpha-3</version>
      </extension>
    </extensions>
    ...
  </build>
</project>

Reporting
    用于在site阶段输出报表。特定的maven 插äšg能输出相应的定制和配¾|®æŠ¥è¡¨ã€?br />  <reporting>
    <plugins>
      <plugin>
        <outputDirectory>${basedir}/target/site</outputDirectory>
        <artifactId>maven-project-info-reports-plugin</artifactId>
        <reportSets>
          <reportSet></reportSet>
        </reportSets>
      </plugin>
    </plugins>
  </reporting>

Report Sets
    用于配置不同的目标,应用于不同的报表
<reporting>
    <plugins>
      <plugin>
        ...
        <reportSets>
          <reportSet>
            <id>sunlink</id>
            <reports>
              <report>javadoc</report>
            </reports>
            <inherited>true</inherited>
            <configuration>
              <links>
                <link>http://java.sun.com/j2se/1.5.0/docs/api/</link> ;
              </links>
            </configuration>
          </reportSet>
        </reportSets>
      </plugin>
    </plugins>
  </reporting>

 

 

 

 

 

Java代码 复制代码
  1. <!-- More Project Information -->   
  2.     <name>...</name>   
  3.     <description>...</description>   
  4.     <url>...</url>   
  5.     <inceptionYear>...</inceptionYear>   
  6.     <licenses>...</licenses>   
  7.     <organization>...</organization>   
  8.     <developers>...</developers>   
  9.     <contributors>...</contributors>  
 


更多的项目信æ?br />name:™å¹ç›®é™¤äº†artifactId外,可以定义多个名称
description: ™å¹ç›®æè¿°
url: ™å¹ç›®url
inceptionYear:创始òq´ä†¾

Licenses
<licenses>
  <license>
    <name>Apache 2</name>
    <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url> ;
    <distribution>repo</distribution>
    <comments>A business-friendly OSS license</comments>
  </license>
</licenses>

 

 

 

 

 

 

 

 

 

 

 

Java代码 复制代码
  1. <!-- Environment Settings -->   
  2. <issueManagement>...</issueManagement>   
  3. <ciManagement>...</ciManagement>   
  4. <mailingLists>...</mailingLists>   
  5. <scm>...</scm>   
  6. <prerequisites>...</prerequisites>   
  7. <repositories>...</repositories>   
  8. <pluginRepositories>...</pluginRepositories>   
  9. <distributionManagement>...</distributionManagement>   
  10. <profiles>...</profiles>  
 


Organization
配置¾l„织信息
  <organization>
    <name>Codehaus Mojo</name>
    <url>http://mojo.codehaus.org</url> ;
  </organization>

Developers
配置开发者信�br /><developers>
    <developer>
      <id>eric</id>
      <name>Eric</name>
      <email>eredmond@codehaus.org</email>
      <url>http://eric.propellors.net</url> ;
      <organization>Codehaus</organization>
      <organizationUrl>http://mojo.codehaus.org</organizationUrl> ;
      <roles>
        <role>architect</role>
        <role>developer</role>
      </roles>
      <timezone>-6</timezone>
      <properties>
        <picUrl>http://tinyurl.com/prv4t</picUrl> ;
      </properties>
    </developer>
  </developers>

Contributors
  <contributors>
    <contributor>
      <name>Noelle</name>
      <email>some.name@gmail.com</email>
      <url>http://noellemarie.com</url> ;
      <organization>Noelle Marie</organization>
      <organizationUrl>http://noellemarie.com</organizationUrl> ;
      <roles>
        <role>tester</role>
      </roles>
      <timezone>-5</timezone>
      <properties>
        <gtalk>some.name@gmail.com</gtalk>
      </properties>
    </contributor>
  </contributors>

环境讄¡½®

Issue Management
    定义相关的bug跟踪¾pȝ»ŸåQŒå¦‚bugzilla,testtrack,clearQuest½{?br />  <issueManagement>
    <system>Bugzilla</system>
    <url>http://127.0.0.1/bugzilla</url> ;
  </issueManagement>
Continuous Integration Management
˜qžç®‹æ•´åˆ½Ž¡ç†åQŒåŸºäºŽtriggers或者timings
  <ciManagement>
    <system>continuum</system>
    <url>http://127.0.0.1:8080/continuum</url> ;
    <notifiers>
      <notifier>
        <type>mail</type>
        <sendOnError>true</sendOnError>
        <sendOnFailure>true</sendOnFailure>
        <sendOnSuccess>false</sendOnSuccess>
        <sendOnWarning>false</sendOnWarning>
        <configuration><address>continuum@127.0.0.1</address></configuration>
      </notifier>
    </notifiers>
  </ciManagement>

Mailing Lists
  <mailingLists>
    <mailingList>
      <name>User List</name>
      <subscribe>user-subscribe@127.0.0.1</subscribe>
      <unsubscribe>user-unsubscribe@127.0.0.1</unsubscribe>
      <post>user@127.0.0.1</post>
      <archive>http://127.0.0.1/user/</archive> ;
      <otherArchives>
        <otherArchive>http://base.google.com/base/1/127.0.0.1</otherArchive> ;
      </otherArchives>
    </mailingList>
  </mailingLists>

SCM
  软äšg配置½Ž¡ç†åQŒå¦‚cvs 和svn
  <scm>
    <connection>scm:svn:http://127.0.0.1/svn/my-project</connection> ;
    <developerConnection>scm:svn:https://127.0.0.1/svn/my-project</developerConnection> ;
    <tag>HEAD</tag>
    <url>http://127.0.0.1/websvn/my-project</url> ;
  </scm>

Repositories

配置同setting.xml中的开发库

Plugin Repositories
配置同 repositories

Distribution Management
用于配置分发½Ž¡ç†åQŒé…¾|®ç›¸åº”的产品发布信息,主要用于发布åQŒåœ¨æ‰§è¡Œmvn deploy后表½Cø™¦å‘布的位¾|?br />1 配置到文件系¾l?br /><distributionManagement>
<repository>
<id>proficio-repository</id>
<name>Proficio Repository</name>
<url>file://${basedir}/target/deploy</url>
</repository>
</distributionManagement>
2 使用ssh2配置
<distributionManagement>
<repository>
<id>proficio-repository</id>
<name>Proficio Repository</name>
<url>scp://sshserver.yourcompany.com/deploy</url>
</repository>
</distributionManagement>
3 使用sftp配置
<distributionManagement>
<repository>
<id>proficio-repository</id>
<name>Proficio Repository</name>
<url>sftp://ftpserver.yourcompany.com/deploy</url>
</repository>
</distributionManagement>
4 使用外在的ssh配置
    ¾~–译扩展用于指定使用wagon外在ssh提供åQŒç”¨äºŽæä¾›ä½ çš„æ–‡ä»¶åˆ°ç›¸åº”的远½E‹æœåС噍ã€?br /><distributionManagement>
<repository>
<id>proficio-repository</id>
<name>Proficio Repository</name>
<url>scpexe://sshserver.yourcompany.com/deploy</url>
</repository>
</distributionManagement>
<build>
<extensions>
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-ssh-external</artifactId>
<version>1.0-alpha-6</version>
</extension>
</extensions>
</build>

5 使用ftp配置
<distributionManagement>
<repository>
<id>proficio-repository</id>
<name>Proficio Repository</name>
<url>ftp://ftpserver.yourcompany.com/deploy</url>
</repository>
</distributionManagement>
<build>
<extensions>
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-ftp</artifactId>
<version>1.0-alpha-6</version>
</extension>
</extensions>
</build>

repository 对应于你的开发库åQŒç”¨æˆ·ä¿¡æ¯é€šè¿‡settings.xml中的server取得

Profiles
¾cÖM¼¼äºŽsettings.xml中的profilesåQŒå¢žåŠ äº†å‡ ä¸ªå…ƒç´ åQŒå¦‚下的样式åQ?br />  <profiles>
    <profile>
      <id>test</id>
      <activation>...</activation>
      <build>...</build>
      <modules>...</modules>
      <repositories>...</repositories>
      <pluginRepositories>...</pluginRepositories>
      <dependencies>...</dependencies>
      <reporting>...</reporting>
      <dependencyManagement>...</dependencyManagement>
      <distributionManagement>...</distributionManagement>
    </profile>
  </profiles>



]]>
(è½?Nexus入门指南åQˆå›¾æ–‡ï¼‰http://www.aygfsteel.com/libin2722/articles/280027.html½C¼ç‰©½C¼ç‰©Thu, 04 Jun 2009 08:32:00 GMThttp://www.aygfsteel.com/libin2722/articles/280027.htmlhttp://www.aygfsteel.com/libin2722/comments/280027.htmlhttp://www.aygfsteel.com/libin2722/articles/280027.html#Feedback0http://www.aygfsteel.com/libin2722/comments/commentRss/280027.htmlhttp://www.aygfsteel.com/libin2722/services/trackbacks/280027.html关键å­? maven nexus

Nexus介绍

Nexus 是Maven仓库½Ž¡ç†å™¨ï¼Œå¦‚果你ä‹É用MavenåQŒä½ å¯ä»¥ä»?a >Maven中央仓库 下蝲所需要的构äšgåQˆartifactåQ‰ï¼Œä½†è¿™é€šå¸¸ä¸æ˜¯ä¸€ä¸ªå¥½çš„做法,你应该在本地架设一个Maven仓库服务器,在代理远½E‹ä»“库的同时¾l´æŠ¤æœ¬åœ°ä»“库åQŒä»¥èŠ? 省带宽和旉™—´åQŒNexusž®±å¯ä»¥æ»¡­‘Œ™¿™æ ïLš„需要。此外,他还提供了强大的仓库½Ž¡ç†åŠŸèƒ½åQŒæž„件搜索功能,它基于RESTåQŒå‹å¥½çš„UI是一个extjsçš? REST客户端,它占用较ž®‘的内存åQŒåŸºäºŽç®€å•文件系¾lŸè€Œéžæ•°æ®åº“。这些优点ä‹Éå…¶æ—¥­‘‹æˆä¸ºæœ€‹¹è¡Œçš„Maven仓库½Ž¡ç†å™¨ã€?/p>

 

下蝲和安�/h2>

你可以从http://nexus.sonatype.org/downloads/ 下蝲最新版本的NexusåQŒç¬”者ä‹É用的æ˜?.3.0版本ã€?/p>

Nexus提供了两¿Uå®‰è£…方式,一¿Uæ˜¯å†…嵌Jettyçš„bundleåQŒåªè¦ä½ æœ‰JREž®Þpƒ½ç›´æŽ¥˜qè¡Œã€‚第二种方式是WARåQŒä½ åªé¡»½Ž€å•çš„ž®†å…¶å‘布到web容器中即可ä‹É用ã€?/p>

 

Bundle方式安装

解压nexus-webapp-1.3.0-bundle.zip 至ä“Q意目录,å¦?em>D:\dev_tools åQŒç„¶åŽæ‰“å¼€CMDåQŒcd至目å½?em>D:\dev_tools\nexus-webapp-1.3.0\bin\jsw\windows-x86-32 åQŒè¿è¡?strong>Nexus.bat 。你会看到Nexus的启动日志,当你看到“Started SelectChannelConnector@0.0.0.0:8081”之后,说明Nexus启动成功了,然后打开‹¹è§ˆå™¨ï¼Œè®‰K—® http://127.0.0.1:8081/nexusåQŒä½ ä¼šçœ‹åˆ°å¦‚下的™åµé¢åQ?/p>

要停止NexusåQŒCtrl+C卛_¯åQŒæ­¤å¤–InstallNexus.bat可以用来ž®†Nexus安装成一个windows服务åQŒå…¶ä½™çš„脚本则对应了启动åQŒåœæ­¢ï¼Œæš‚停åQŒæ¢å¤ï¼Œå¸è²Nexus服务ã€?/p>

 

WAR方式安装

你需要有一个能˜qè¡Œçš„web容器åQŒè¿™é‡Œä»¥Tomcatä¸ÞZ¾‹åQŒåŠ å…¥Tomcat的安装目录位äº?em>D:\dev_tools\apache-tomcat-6.0.18 åQŒé¦–先我们将下蝲çš?em>nexus-webapp-1.3.0.war é‡å‘½åäØ“nexus.war åQŒç„¶åŽå¤åˆ¶åˆ°D:\dev_tools\apache-tomcat-6.0.18\webapps\nexus.war åQŒç„¶åŽå¯åЍCMDåQŒcdåˆ?em>D:\dev_tools\apache-tomcat-6.0.18\bin\ 目录åQŒè¿è¡?strong>startup.bat 。一切OKåQŒçŽ°åœ¨å¯ä»¥æ‰“å¼€‹¹è§ˆå™¨è®¿é—®http://127.0.0.1:8080/nexusåQŒä½ ä¼šå¾—到和上图一æ ïLš„界面ã€?/p>

 

代理外部Maven仓库

登陆

要管理NexusåQŒä½ é¦–先需要以½Ž¡ç†å‘˜èín份登陆,点击界面右上角的loginåQŒè¾“入默认的ç™Õd½•名和密码åQšadmin/admin123åQŒç™»é™†æˆåŠŸåŽåQŒä½ ä¼šçœ‹åˆ°å·¦è¾¹çš„坯Dˆªæ å¢žåŠ äº†å¾ˆå¤šå†…å®¹åQ?/p>

˜q™é‡ŒåQŒå¯ä»¥ç®¡ç†ä»“库,配置Nexus¾pȝ»ŸåQŒç®¡ç†ä“Q务,½Ž¡ç†ç”¨æˆ·åQŒè§’è‰ÔŒ¼Œæƒé™åQŒæŸ¥çœ‹ç³»¾lŸçš„RSS源,½Ž¡ç†åŠæŸ¥çœ‹ç³»¾lŸæ—¥å¿—,½{‰ç­‰ã€‚你会看到Nexus的功能十分丰富和强大åQŒæœ¬æ–‡ï¼Œ½W”者只介绍一些最基本的管理和操作ã€?/p>

 

代理Maven中央仓库

ç‚¹å‡»å·¦è¾¹å¯ÆDˆªæ çš„RepositoriesåQŒç•Œé¢çš„主面板会昄¡¤ºæ‰€æœ‰ä¸€ä¸ªæ‰€æœ‰ä»“库及仓库¾l„的列表åQŒä½ ä¼šçœ‹åˆ°å®ƒä»¬çš„Type字段的值有groupåQŒhostedåQŒproxyåQŒvirtual。这里我们不兛_¿ƒvirtualåQŒåªä»‹ç»ä¸‹å¦å¤–三¿Uç±»åž‹ï¼š

  • hostedåQŒæœ¬åœîC»“库,通常我们会部¾|²è‡ªå·Þqš„æž„äšg到这一¾cÕdž‹çš„仓库ã€?/li>
  • proxyåQŒä»£ç†ä»“库,它们被用来代理远½E‹çš„公共仓库åQŒå¦‚maven中央仓库ã€?/li>
  • groupåQŒä»“库组åQŒç”¨æ¥åˆòq¶å¤šä¸ªhosted/proxy仓库åQŒé€šå¸¸æˆ‘们配置maven依赖仓库¾l„ã€?/li>

由此我们知道åQŒæˆ‘们需要配¾|®ä¸€ä¸ªMaven中央仓库的proxyåQŒå…¶å®žNexus已经内置了Maven CentralåQŒä½†æˆ‘们需要做一些配¾|®ã€‚点å‡ÖM»“库列表中的Maven CentralåQŒä½ ä¼šæ³¨æ„åˆ°å®ƒçš„Policy是releaseåQŒè¿™è¯´æ˜Žå®ƒä¸ä¼šä»£ç†è¿œ½E‹ä»“库的snapshotæž„äšgåQŒè¿™æ˜¯æœ‰åŽŸå› çš„ï¼Œ˜qœç¨‹ä»“库çš? snapshot版本构äšg不稳定且不受你控åˆÓž¼Œä½¿ç”¨˜q™æ ·çš„æž„件含有潜在的风险。然后我们发çŽîC¸»é¢æ¿ä¸‹æ–¹æœ‰ä¸‰ä¸ªTabåQŒåˆ†åˆ«äØ“ BrowseåQŒConfigurationå’ŒMirrorsåQŒæˆ‘们点击Configuration˜q›è¡Œé…ç½®åQŒä½ çŽ°åœ¨éœ€è¦å…³å¿ƒçš„æ˜¯ä¸¤ä¸ªé…¾|? ™å¹ï¼šâ€œRemote Storage Locationâ€äØ“˜qœç¨‹ä»“库的地址åQŒå¯¹äºŽMaven Central来说是http://repo1.maven.org/maven2/åQ›â€œDownload Remote Indexes”顾名思义是指是否下蝲˜qœç¨‹ç´¢å¼•æ–‡äšgåQŒMaven Central的该字段默认为FalseåQŒè¿™æ˜¯äؓ了防止大量Nexus无意识的åŽÀL¶ˆè€—中央仓库的带宽åQˆä¸­å¤®ä»“库有大量的构ä»Óž¼Œå…¶çƒ¦å¼•文件也很大åQ‰ã€‚这里我 们需要将其设¾|®äØ“TrueåQŒç„¶åŽç‚¹å‡»Save。在Nexus下蝲的中央仓库烦引文件之后,我们ž®±å¯ä»¥åœ¨æœ¬åœ°æœçƒ¦ä¸­å¤®ä»“库的所有构件。下囑ֱ•½CÞZº†æˆ‘们刚才所 涉及的配¾|®ï¼š

 

æ·ÕdŠ ä¸€ä¸ªä»£ç†ä»“åº?/em>

˜q™é‡Œæˆ‘们再ä‹D一个例子,我们惌™¦ä»£ç†Sonatype的公å…׃»“库,其地址为:http://repository.sonatype.org /content/groups/public/。步骤如下,在Repositories面板的上方,点击AddåQŒç„¶åŽé€‰æ‹©Proxy RepositoryåQŒåœ¨ä¸‹æ–¹çš„配¾|®éƒ¨åˆ†ï¼Œæˆ‘们填写如下的信息:Repository ID - sonatypeåQ›Repository Name - Sonatype RepositoryåQ›Remote Storage Location - http://repository.sonatype.org/content/groups/public/。其余的保持默认å€û|¼Œéœ€è¦æ³¨æ„çš„æ˜? Repository PolicyåQŒæˆ‘们不想代理snapshotæž„äšgåQŒåŽŸå› å‰é¢å·²¾læ˜q°ã€‚然后点击Save。配¾|®é¡µé¢å¦‚下:

 

½Ž¡ç†æœ¬åœ°Maven仓库

Nexus预定义了3个本åœîC»“库,分别为ReleasesåQŒSnapshotsåQŒå’Œ3rd Party。这三个仓库都有各自明确的目的。Releases用于部çÖv我们自己的releaseæž„äšgåQŒSnapshots用于部çÖv我们自己çš? snapshotæž„äšgåQŒè€?rd Party用于部çÖv½W¬ä¸‰æ–ÒŽž„ä»Óž¼Œæœ‰äº›æž„äšg如Oracleçš„JDBC驱动åQŒæˆ‘们不能从公共仓库下蝲刎ͼŒæˆ‘们ž®±éœ€è¦å°†å…‰™ƒ¨¾|²åˆ°è‡ªå·±çš„仓库中ã€?/p>

当然你也可以创徏自己的本åœîC»“库,步骤和创å»ÞZ»£ç†ä»“库类ä¼û|¼Œç‚¹å‡»Repository面板上方的Add按钮åQŒç„¶åŽé€‰æ‹©Hosted RepositoryåQŒç„¶åŽåœ¨ä¸‹æ–¹çš„配¾|®é¢æ¿ä¸­è¾“å…¥idå’ŒnameåQŒæ³¨æ„è¿™é‡Œæˆ‘们不再需要填写远½E‹ä»“库地址åQŒRepository Typeåˆ™äØ“ä¸å¯ä¿®æ”¹çš„hostedåQŒè€Œå…³äºŽRepository PolicyåQŒä½ å¯ä»¥æ ÒŽ®è‡ªå·±çš„需要选择Release或者SnapshotåQŒå¦‚图:

 

½Ž¡ç†Maven仓库¾l?/h2>

Nexus中仓库组的概忉|˜¯Maven没有的,在Maven看来åQŒä¸½Ž¡ä½ æ˜¯hosted也好åQŒproxy也好åQŒæˆ–者group也好åQŒå¯¹æˆ‘都是一æ ? 的,我只½Ž¡æ ¹æ®groupIdåQŒartifactIdåQŒversion½{‰ä¿¡æ¯å‘你要构äšgã€‚äØ“äº†æ–¹ä¾¿Maven的配¾|®ï¼ŒNexus能够ž®†å¤šä¸ªä»“ 库,hosted或者proxyåˆåÆˆæˆä¸€ä¸ªgroupåQŒè¿™æ øP¼ŒMaven只需要依赖于一个groupåQŒä¾¿èƒ½ä‹É用所有该group包含的仓库的内容ã€?/p>

Nexus预定义了“Public Repositories”和“Public Snapshot Repositories”两个仓库组åQŒå‰è€…默认合òq¶æ‰€æœ‰é¢„定义的Release仓库åQŒåŽè€…默认合òq¶æ‰€æœ‰é¢„定义的Snapshot仓库。我们在本文前面çš? 部分创徏了一个名为“Sonatype Repository”的仓库åQŒçŽ°åœ¨å°†å…¶åˆòq¶åˆ°â€œPublic Repositories”中ã€?/p>

点击仓库列表中的“Public Repositories”,然后选择下方çš?Configuration" TabåQŒåœ¨é…ç½®é¢æ¿ä¸­ï¼Œž®†å³è¾¹â€œAvaiable Repositories”中的“Sonatype Repository”拖拽到左边的“Ordered Group Repository”中åQŒå¦‚图:

创徏仓库¾l„和创徏proxy及hosted仓库¾cÖM¼¼åQŒè¿™é‡Œä¸å†èµ˜˜q°ã€‚需要注意的是format字段需要填写“maven2”,æ·ÕdŠ ä½ æ„Ÿå…´è¶£çš„ä»“åº“å³å¯ã€?/p>

 

搜烦构äšg

在浩大的Maven仓库中一下下点击链接åQŒæµè§ˆèµ\径以å¯ÀL‰¾æ„Ÿå…´­‘£çš„æž„äšg是一件很郁闷的事情。NexusåŸÞZºŽnexus-indexer提供构äšg搜烦 功能åQŒè¦æƒ›_¯¹ä»“库˜q›è¡Œæœçƒ¦åQŒæ— è®ºæ˜¯hostedåQŒproxyåQŒæˆ–者groupåQŒä½ éƒ½å¿…™åȝ¡®è®¤çƒ¦å¼•文件存在。这一点对于代理仓库尤光™‡è¦ï¼Œæœ‰äº›˜qœç¨‹ä»“库可能 æ ÒŽœ¬ž®±æ²¡æœ‰çƒ¦å¼•,所以你无法搜烦˜q™äº›ä»£ç†ä»“库。有些远½E‹ä»“库的˜qœç¨‹ç´¢å¼•非常大,如中央仓库达åˆîCº†70M左右åQŒé‚£ä¹ˆç¬¬ä¸€‹Æ¡ä¸‹è½½çƒ¦å¼•需要花很多旉™—´åQŒæ‰€ä»¥è¦æœ? 望得到搜索结果,¼‹®ä¿çœ‹åˆ°å¦‚下的文ä»Óž¼š

一旦你的Nexus拥有了本地或者远½E‹ä»“库的索引文äšgåQŒä½ ž®±å¯ä»¥äín受Nexus的构件搜索功能了。不论登陆与否,你都可以使用关键字进行模¾pŠæœç´¢ï¼Œ æ¯”å¦‚æˆ‘åœ¨å·¦è¾¹å¯ÆDˆªæ ä¸Šéƒ¨çš„æœçƒ¦æ¡†å†…输入junitåQŒç„¶åŽç‚¹å‡ÀLœç´¢æŒ‰é’®ï¼ŒåŒ™¾¹ç«‹åˆ»ä¼šåˆ†™å‰|˜¾½C?00多条的junit相关构äšg信息。如果你了解更多的信息,ä½? 也可以通过限定groupIdåQŒartifactIdåQŒversion˜q›è¡Œæœçƒ¦åQŒç‚¹å‡Õd¯¼èˆªæ ä¸­çš„“Advanced Search”,点击双™¾¹æ‰€æœ‰é¡µé¢å·¦ä¸Šè§’的下拉框åQŒé€‰æ‹©â€œGAV Search”。笔者这里输入junit:junit:4.4åQŒç„¶åŽå›žè½¦ï¼š

选择一™åÒŽœç´¢ç»“果,在页面下方会昄¡¤ºâ€œArtifact Information”的面板åQŒä½ å¯ä»¥ç‚¹å‡»"artifact"或è€?pom"下蝲对应文äšgåQŒè€Œè¯¥é¢æ¿åŒ™¾¹æ›´æ˜¾½CÞZº†ä¸€ä¸ªMaven依赖配置åQŒä½ å¯ä»¥ç›´æŽ¥å¤åˆ¶è¯¥é…¾|®åˆ°Maven POM中,˜q™æ˜¯ä¸ªååˆ†æ–¹ä¾¿çš„ç‰ÒŽ€§ã€?/p>

此外åQŒå€¼å¾—一提的是,Nexus˜q˜æ”¯æŒåŸºäºŽclassname的搜索,你只需点击搜烦™åµé¢å³ä¸Šè§’的下拉框,选择“Classname Search”,然后输入¾cÕdå›_¯åQŒè¿™é‡Œæˆ‘不再赘述ã€?/p>

 

配置Maven使用Nexus

默认情况下,Maven依赖于中央仓库,˜q™æ˜¯ä¸ÞZº†èƒ½è®©Mavenå¼€½Ž±å³ç”¨ï¼Œä½†ä»…仅这么做明显是错误的åQŒè¿™ä¼šé€ æˆå¤§é‡çš„æ—¶é—´åŠå¸¦å®½çš„æµªè´V€‚既然文章的前面已经介绍了如何安装和配置NexusåQŒçŽ°åœ¨æˆ‘ä»¬å°±è¦é…¾|®Maven来ä‹É用本地的NexusåQŒä»¥èŠ‚çœæ—‰™—´å’Œå¸¦å®½èµ„源ã€?/p>

我们可以ž®†Repository配置到POMä¸­ï¼Œä½†ä¸€èˆ¬æ¥è¯´è¿™ä¸æ˜¯å¾ˆå¥½çš„åšæ³•ï¼ŒåŽŸå› å¾ˆç®€å•ï¼Œä½ éœ€è¦äØ“æ‰€æœ‰çš„Maven™å¹ç›®é‡å¤è¯¥é…¾|®ã€‚因此,˜q™é‡Œæˆ‘å°†Repository的配¾|®æ”¾åˆ?user_home/.m2/settings.xml中:

Xml代码
  1. < settings >   
  2. ...  
  3. < profiles >   
  4.   <profile>  
  5.     <id>dev</id>  
  6.     <repositories>  
  7.       <repository>  
  8.         <id>local-nexus</id>  
  9.         <url>http://127.0.0.1:8080/nexus/content/groups/public/</url>  
  10.         <releases>  
  11.           <enabled>true</enabled>  
  12.         </releases>  
  13.         <snapshots>  
  14.           <enabled>true</enabled>  
  15.         </snapshots>  
  16.       </repository>  
  17.     </repositories>  
  18.   </profile>  
  19. </ profiles >   
  20. < activeProfiles >   
  21.   <activeProfile>dev</activeProfile>  
  22. </ activeProfiles >   
  23. ...  
  24. </ settings >   

ç”׃ºŽæˆ‘们不能直接在settings.xml中插å…?lt;repositories>元素åQŒè¿™é‡Œæˆ‘们编写了一个profileåQŒåƈæ·ÕdŠ äº†ä¸€ 个profileòq¶ä‹Éç”?lt;activeProfile>元素自动ž®†è¿™ä¸ªprofile‹È€‹z…R€‚这里的local-nexus仓库指向了刚才我ä»? 配置的Nexus中“Public Repositories”仓库组åQŒä¹Ÿž®±æ˜¯è¯ß_¼Œæ‰€æœ‰è¯¥ä»“库¾l„包含的仓库都能供我们ä‹É用。此外,我们通过<releases> å’?lt;snapshots>元素‹È€‹zÖMº†Maven对于仓库所有类型构件下载的支持åQŒå½“然你也可以调节该配置åQŒæ¯”如说¼›æ­¢Maven从Nexus 下蝲snapshotæž„äšgã€?/p>

使用该配¾|®ï¼ŒMavenž®×ƒ¼šä»Žä½ çš„Nexus服务器下载构件了åQŒé€Ÿåº¦å’Œä»ŽCentral下蝲可不是一个数量çñ”çš„ã€?/p>

 

部çÖvæž„äšg至Nexus

Nexus提供了两¿Uæ–¹å¼æ¥éƒ¨çÖvæž„äšgåQŒä½ å¯ä»¥ä»ŽUI直接上传åQŒä¹Ÿå¯ä»¥é…ç½®Maven部çÖvæž„äšgã€?/p>

 

通过Nexus UI部çÖv

有时候有个jaræ–‡äšg你无法从公共Maven仓库扑ֈ°åQŒä½†æ˜¯ä½ èƒ½ä»Žå…¶å®ƒå¾—到˜q™ä¸ªjaræ–‡äšgåQˆç”šè‡Ïx˜¯POMåQ‰ï¼Œé‚£ä¹ˆä½ å®Œå…¨å¯ä»¥å°†˜q™ä¸ªæ–‡äšg部çÖv到Nexusä¸­ï¼Œä½¿å…¶æˆäØ“æ ‡å‡†‹¹ç¨‹çš„一部分。步骤如下:

ç‚¹å‡»å·¦è¾¹å¯ÆDˆªæ çš„"Repository"åQŒåœ¨åŒ™¾¹çš„仓库列表中选择一个仓库,如â€?rd Party”,然后会看到页面下æ–ÒŽœ‰å››ä¸ªtabåQŒé€‰æ‹©æœ€åŽä¸€ä¸ªâ€œUpload”,你会看到构äšg上传界面。选择你要上传的构ä»Óž¼Œòq¶æŒ‡å®šPOMåQŒï¼ˆæˆ–者手工编 写GAV½{‰ä¿¡æ¯ï¼‰åQŒæœ€åŽç‚¹å‡»UploadåQŒè¯¥æž„äšgž®Þq›´æŽ¥è¢«éƒ¨çÖvåˆîCº†Nexusçš?3rd Party"仓库中。如图:


通过Maven部çÖv

更常见的用例是:团队在开发一个项目的各个模块åQŒäؓ了让自己开发的模块能够快速让其他äºÞZ‹É用,你会惌™¦ž®†snapshot版本的构仉™ƒ¨¾|²åˆ°Maven仓库中,其他人只需要在POMæ·ÕdŠ ä¸€ä¸ªå¯¹äºŽä½ å¼€å‘æ¨¡å—çš„ä¾èµ–åQŒå°±èƒ½éšæ—¶æ‹¿åˆ°æœ€æ–°çš„snapshotã€?/p>

以下的pom.xml配置和settings.xml能让你通过Maven自动化部¾|²æž„ä»Óž¼š

pom.xml

Xml代码
  1. < project >   
  2. ...  
  3. < distributionManagement >   
  4.   <repository>  
  5.     <id>nexus-releases</id>  
  6.       <name>Nexus Release Repository</name>  
  7.       <url>http://127.0.0.1:8080/nexus/content/repositories/releases/</url>  
  8.   </repository>  
  9.   <snapshotRepository>  
  10.     <id>nexus-snapshots</id>  
  11.     <name>Nexus Snapshot Repository</name>  
  12.     <url>http://127.0.0.1:8080/nexus/content/repositories/snapshots/</url>  
  13.   </snapshotRepository>  
  14. </ distributionManagement >   
  15. ...  
  16. </ project >   

settings.xml

Xml代码
  1. < settings >   
  2. ...  
  3. < servers >   
  4.   <server>  
  5.     <id>nexus-releases</id>  
  6.     <username>admin</username>  
  7.     <password>admin123</password>  
  8.   </server>  
  9.   <server>  
  10.     <id>nexus-snapshots</id>  
  11.     <username>admin</username>  
  12.     <password>admin123</password>  
  13.   </server>    
  14. </ servers >   
  15. ...  
  16. </ settings >   

˜q™é‡Œæˆ‘们配置所有的snapshot版本构äšg部çÖv到Nexusçš„Snapshots仓库中, 所有的releaseæž„äšg部çÖv到Nexusçš„Releases仓库中。由于部¾|²éœ€è¦ç™»é™†ï¼Œå› äؓ我们在settings.xml中配¾|®å¯¹åº? Repository id的用户名和密码ã€?/p>

然后åQŒåœ¨™å¹ç›®ç›®å½•中执è¡?strong>mvn deploy åQŒä½ ä¼šçœ‹åˆ°mavenž®†é¡¹ç›®æž„仉™ƒ¨¾|²åˆ°Nexus中,‹¹è§ˆNexus对应的仓库,ž®±å¯ä»¥çœ‹åˆ°åˆšæ‰éƒ¨¾|²çš„æž„äšg。当其他人构建其™å¹ç›®æ—Óž¼ŒMavenž®×ƒ¼šä»ŽNexuså¯ÀL‰¾ä¾èµ–òq¶ä¸‹è½½ã€?/p>

 

æ€È»“

本文介绍强大的仓库管理器——NexusåQŒåŒ…括如何下载安装NexusåQŒé…¾|®Nexus代理中央仓库åQŒç®¡ç†Nexus的代理仓库,本地仓库åQŒä»¥åŠä»“ åº“ç»„ã€‚åÆˆå¸®åŠ©ä½ äº†è§£å¦‚ä½•é€šè¿‡Nexus搜烦构äšg。最后,如何在Maven中配¾|®Nexus仓库åQŒä»¥åŠå¦‚何部¾|²æž„件到Nexus仓库中。这些都是Nexus 中最基本也是最常用的功能。随着使用的深入,你会发现Nexus˜q˜æœ‰å¾ˆå¤šå…¶å®ƒçš„特性,如用æˆïL®¡ç†ï¼Œè§’色权限½Ž¡ç†½{‰ç­‰ã€?/p>

Nexusçš„OSS版本是完全开源的åQŒå¦‚果你有兴­‘£ï¼Œä½ å¯ä»¥å­¦ä¹ å…¶æºç åQŒç”šè‡Œ™‡ªå·±å®žçŽîC¸€ä¸ªREST客户端ã€?/p>

马上拥抱Nexus吧,它是免费的!



]]>
nexus settings 讄¡½®http://www.aygfsteel.com/libin2722/articles/277914.html½C¼ç‰©½C¼ç‰©Mon, 25 May 2009 15:09:00 GMThttp://www.aygfsteel.com/libin2722/articles/277914.htmlhttp://www.aygfsteel.com/libin2722/comments/277914.htmlhttp://www.aygfsteel.com/libin2722/articles/277914.html#Feedback0http://www.aygfsteel.com/libin2722/comments/commentRss/277914.htmlhttp://www.aygfsteel.com/libin2722/services/trackbacks/277914.html<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
-->

<!--
 | This is the configuration file for Maven. It can be specified at two levels:
 |
 |  1. User Level. This settings.xml file provides configuration for a single user,
 |                 and is normally provided in $HOME/.m2/settings.xml.
 |
 |                 NOTE: This location can be overridden with the system property:
 |
 |                 -Dorg.apache.maven.user-settings=/path/to/user/settings.xml
 |
 |  2. Global Level. This settings.xml file provides configuration for all maven
 |                 users on a machine (assuming they're all using the same maven
 |                 installation). It's normally provided in
 |                 ${maven.home}/conf/settings.xml.
 |
 |                 NOTE: This location can be overridden with the system property:
 |
 |                 -Dorg.apache.maven.global-settings=/path/to/global/settings.xml
 |
 | The sections in this sample file are intended to give you a running start at
 | getting the most out of your Maven installation. Where appropriate, the default
 | values (values used when the setting is not specified) are provided.
 |
 |-->
<settings>
  <localRepository>D:/maven-2.0.9/repository</localRepository>


  <!-- interactiveMode
   | This will determine whether maven prompts you when it needs input. If set to false,
   | maven will use a sensible default value, perhaps based on some other setting, for
   | the parameter in question.
   |
   | Default: true
  <interactiveMode>true</interactiveMode>
  -->

  <!-- offline
   | Determines whether maven should attempt to connect to the network when executing a build.
   | This will have an effect on artifact downloads, artifact deployment, and others.
   |
   | Default: false
  <offline>false</offline>
  -->

  <!-- proxies
   | This is a list of proxies which can be used on this machine to connect to the network.
   | Unless otherwise specified (by system property or command-line switch), the first proxy
   | specification in this list marked as active will be used.
   |-->
  <proxies>
    <!-- proxy
     | Specification for one proxy, to be used in connecting to the network.
     |
    <proxy>
      <id>optional</id>
      <active>true</active>
      <protocol>http</protocol>
      <username>proxyuser</username>
      <password>proxypass</password>
      <host>proxy.host.net</host>
      <port>80</port>
      <nonProxyHosts>local.net,some.host.com</nonProxyHosts>
    </proxy>
    -->
  </proxies>

  <!-- servers
   | This is a list of authentication profiles, keyed by the server-id used within the system.
   | Authentication profiles can be used whenever maven must make a connection to a remote server.
   |-->
  <servers>
    <!-- server
     | Specifies the authentication information to use when connecting to a particular server, identified by
     | a unique name within the system (referred to by the 'id' attribute below).
     |
     | NOTE: You should either specify username/password OR privateKey/passphrase, since these pairings are
     |       used together.
     |
    <server>
      <id>deploymentRepo</id>
      <username>repouser</username>
      <password>repopwd</password>
    </server>
    -->
   
    <!-- Another sample, using keys to authenticate.
    <server>
      <id>siteServer</id>
      <privateKey>/path/to/private/key</privateKey>
      <passphrase>optional; leave empty if not used.</passphrase>
    </server>
    -->
 <server>
      <id>nexus</id>
      <username>admin</username>
      <password>admin123</password>
    </server>
  </servers>

  <!-- mirrors
   | This is a list of mirrors to be used in downloading artifacts from remote repositories.
   |
   | It works like this: a POM may declare a repository to use in resolving certain artifacts.
   | However, this repository may have problems with heavy traffic at times, so people have mirrored
   | it to several places.
   |
   | That repository definition will have a unique id, so we can create a mirror reference for that
   | repository, to be used as an alternate download site. The mirror site will be the preferred
   | server for that repository.
   |-->
  <mirrors>
    <!-- mirror
     | Specifies a repository mirror site to use instead of a given repository. The repository that
     | this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
     | for inheritance and direct lookup purposes, and must be unique across the set of mirrors.
     |
    <mirror>
      <id>mirrorId</id>
      <mirrorOf>repositoryId</mirrorOf>
      <name>Human Readable Name for this Mirror.</name>
      <url>http://my.repository.com/repo/path</url>
    </mirror>
     -->
  <mirror>
      <id>nexus</id>          
      <name>Maven Repository Manager running on http://125.76.229.146:8080/nexus</name>
      <url>http://125.76.229.146:8080/nexus/content/groups/public</url>
      <mirrorOf>*</mirrorOf>
    </mirror>
  </mirrors>
 
  <!-- profiles
   | This is a list of profiles which can be activated in a variety of ways, and which can modify
   | the build process. Profiles provided in the settings.xml are intended to provide local machine-
   | specific paths and repository locations which allow the build to work in the local environment.
   |
   | For example, if you have an integration testing plugin - like cactus - that needs to know where
   | your Tomcat instance is installed, you can provide a variable here such that the variable is
   | dereferenced during the build process to configure the cactus plugin.
   |
   | As noted above, profiles can be activated in a variety of ways. One way - the activeProfiles
   | section of this document (settings.xml) - will be discussed later. Another way essentially
   | relies on the detection of a system property, either matching a particular value for the property,
   | or merely testing its existence. Profiles can also be activated by JDK version prefix, where a
   | value of '1.4' might activate a profile when the build is executed on a JDK version of '1.4.2_07'.
   | Finally, the list of active profiles can be specified directly from the command line.
   |
   | NOTE: For profiles defined in the settings.xml, you are restricted to specifying only artifact
   |       repositories, plugin repositories, and free-form properties to be used as configuration
   |       variables for plugins in the POM.
   |
   |-->
  <profiles>
    <!-- profile
     | Specifies a set of introductions to the build process, to be activated using one or more of the
     | mechanisms described above. For inheritance purposes, and to activate profiles via <activatedProfiles/>
     | or the command line, profiles have to have an ID that is unique.
     |
     | An encouraged best practice for profile identification is to use a consistent naming convention
     | for profiles, such as 'env-dev', 'env-test', 'env-production', 'user-jdcasey', 'user-brett', etc.
     | This will make it more intuitive to understand what the set of introduced profiles is attempting
     | to accomplish, particularly when you only have a list of profile id's for debug.
     |
     | This profile example uses the JDK version to trigger activation, and provides a JDK-specific repo.
    <profile>
      <id>jdk-1.4</id>

      <activation>
        <jdk>1.4</jdk>
      </activation>

      <repositories>
        <repository>
   <id>jdk14</id>
   <name>Repository for JDK 1.4 builds</name>
   <url>http://www.myhost.com/maven/jdk14</url>
   <layout>default</layout>
   <snapshotPolicy>always</snapshotPolicy>
 </repository>
      </repositories>
    </profile>
    -->

    <!--
     | Here is another profile, activated by the system property 'target-env' with a value of 'dev',
     | which provides a specific path to the Tomcat instance. To use this, your plugin configuration
     | might hypothetically look like:
     |
     | ...
     | <plugin>
     |   <groupId>org.myco.myplugins</groupId>
     |   <artifactId>myplugin</artifactId>
     |  
     |   <configuration>
     |     <tomcatLocation>${tomcatPath}</tomcatLocation>
     |   </configuration>
     | </plugin>
     | ...
     |
     | NOTE: If you just wanted to inject this configuration whenever someone set 'target-env' to
     |       anything, you could just leave off the <value/> inside the activation-property.
     |
    <profile>
      <id>env-dev</id>

      <activation>
        <property>
   <name>target-env</name>
   <value>dev</value>
 </property>
      </activation>

      <properties>
        <tomcatPath>/path/to/tomcat/instance</tomcatPath>
      </properties>
    </profile>
    -->
  </profiles>

  <!-- activeProfiles
   | List of profiles that are active for all builds.
   |
  <activeProfiles>
    <activeProfile>alwaysActiveProfile</activeProfile>
    <activeProfile>anotherAlwaysActiveProfile</activeProfile>
  </activeProfiles>
  -->
</settings>



]]>
初学maven(4)-使用maven ant task实现非标准打åŒ?http://www.aygfsteel.com/libin2722/articles/250010.html½C¼ç‰©½C¼ç‰©Mon, 05 Jan 2009 15:27:00 GMThttp://www.aygfsteel.com/libin2722/articles/250010.htmlhttp://www.aygfsteel.com/libin2722/comments/250010.htmlhttp://www.aygfsteel.com/libin2722/articles/250010.html#Feedback0http://www.aygfsteel.com/libin2722/comments/commentRss/250010.htmlhttp://www.aygfsteel.com/libin2722/services/trackbacks/250010.html阅读全文

]]>
初学maven(3)-使用nexus替代artifactoryä½œäØ“maven¿Uæœ http://www.aygfsteel.com/libin2722/articles/250009.html½C¼ç‰©½C¼ç‰©Mon, 05 Jan 2009 15:26:00 GMThttp://www.aygfsteel.com/libin2722/articles/250009.htmlhttp://www.aygfsteel.com/libin2722/comments/250009.htmlhttp://www.aygfsteel.com/libin2722/articles/250009.html#Feedback1http://www.aygfsteel.com/libin2722/comments/commentRss/250009.htmlhttp://www.aygfsteel.com/libin2722/services/trackbacks/250009.html
    于是军_®šæ”‘Ö¼ƒartifactory改而ä‹É用nexusä½œäØ“è‡ªå·±çš„maven¿Uæœã€‚恩åQŒæƒ­æ„§ï¼Œé¢‡æœ‰ç‚¹å–œæ–°åŽŒæ—§çš„å‘³é“åQŒartifactory才装上来没有几天åQŒå°±æƒ¨é­æŠ›å¼ƒ......

    整理了一下,全过½E‹è®°å½•如下:

1. 首先下蝲Nexus
    从官¾|‘http://nexus.sonatype.org/download.htmlä¸‹è²ä¸‹è²æœ€æ–°ç‰ˆæœ¬ï¼Œå› äØ“æ˜¯åœ¨windows上安装,因此下蝲的是zip版本åQŒå¤§ž®å¤§æ¦‚是16mã€?br />    
2. 安装
    ½Ž€å•解压羃下蝲的zip包到安装目录ž®±å¯ä»¥äº†ã€?br />     可执行文件在%nexus安装目录%\nexus-webapp-1.0.0\binjsw\windows-x86-32下:
        InstallNexus.bat/UninstallNexus.bat是安è£?卸蝲nexus为windows serviceåQŒå¦‚果需要设¾|®nexusä¸ºå¼€æœø™‡ªåŠ¨å¯åŠ¨å°±å¯ä»¥å®‰è£…ä¸ºwindows service然后讄¡½®å¯åŠ¨æ–¹å¼ä¸ø™‡ªåЍã€?br />         Nexus.bat是直接在命ä×o行中启动NexusåQŒå¦‚果不惛_®‰è£…Nexus为windows serviceåQŒå¯ä»¥ç”¨˜q™ä¸ªæ–‡äšg来手工控制Nexus的启动退出ã€?br />        
       
3. 配置nexus

    首先ç™Õd½•åQŒé»˜è®¤åœ°å€http://localhost:8081/nexus/åQŒé»˜è®¤ç”¨æˆ·åå¯†ç ä¸ºadmin/admin123.
   
    最重要的一件事情就是开启远½E‹çƒ¦å¼•下载,索引˜q™ä¸ªåŠŸèƒ½å®žåœ¨æ˜¯å¤ªå¥½ç”¨äº†ã€?br />    
    nexus默认是关闭远½E‹çƒ¦å¼•下载功能的åQŒä¸»è¦æ˜¯æ‹…心会造成å¯ÒŽœåŠ¡å™¨çš„å·¨å¤§è´Ÿæ‹…ï¼Œéœ€è¦æˆ‘ä»¬æ‰‹å·¥å¼€å¯ã€?br />    
    开启的方式åQ?br />         点击Administration菜单下面的RepositoriesåQŒå°†˜q™ä¸‰ä¸ªä»“库Apache SnapshotsåQŒCodehaus SnapshotsåQŒMaven Centralçš„Download Remote Indexes修改为true。然后在˜q™ä¸‰ä¸ªä»“库上分别右键åQŒé€‰æ‹©Re-indexåQŒè¿™æ ·Nexusž®×ƒ¼šåŽÖM¸‹è½½è¿œ½E‹çš„索引文äšgã€?br />        
4. 配置maven
    要让maven使用nexusä½œäØ“¿UæœåQŒéœ€è¦åšä¸€äº›è®¾¾|®ï¼Œä½¿ç”¨å’ŒåŽŸæ¥è®¾¾|®artifactoryç›æ€¼¼çš„æ–¹æ³•。修改~/.m2/settings.xml.
   
    增加nexusçš„profileåQ?br />
    <profile>
      
<id>nexus</id>
      
<repositories>
        
<repository>
            
<id>nexus</id>
            
<name>local private nexus</name>
            
<url>http://localhost:8081/nexus/content/groups/public</url>
            
<releases><enabled>true</enabled></releases>
            
<snapshots><enabled>false</enabled></snapshots>
        
</repository>
        
<repository>
            
<id>nexus</id>
            
<name>local private nexus</name>
            
<url>http://localhost:8081/nexus/content/groups/public-snapshots</url>
            
<releases><enabled>false</enabled></releases>
            
<snapshots><enabled>true</enabled></snapshots>
        
</repository>
      
</repositories>
      
<pluginRepositories>
        
<pluginRepository>
            
<id>nexus</id>
            
<name>local private nexus</name>
            
<url>http://localhost:8081/nexus/content/groups/public</url>
            
<releases><enabled>true</enabled></releases>
            
<snapshots><enabled>false</enabled></snapshots>
        
</pluginRepository>
        
<pluginRepository>
            
<id>nexus</id>
            
<name>local private nexus</name>
            
<url>http://localhost:8081/nexus/content/groups/public-snapshots</url>
            
<releases><enabled>false</enabled></releases>
            
<snapshots><enabled>true</enabled></snapshots>
        
</pluginRepository>
       
</pluginRepositories>
    
</profile>
 
    修改activeProfiles为:
      <activeProfiles>
        
<activeProfile>nexus</activeProfile>
      
</activeProfiles>
     
5. 为nexus增加Artifact
    有些ç‰ÒŽ®Šçš„Artifact无法从maven官网仓库中下载,比如sun的一些包åQŒåªå¥½è‡ªå·Þp‡ªè¡Œä¸‹è½½åŽæ·ÕdŠ åˆ°ç§æœä¸­ã€?br />     在nexus中我选择ž®†è¿™äº›Artifact上传到默认安装就存在的仓åº?rd Party中,叛_‡»ä»“库名,选择Upload Artifactã€?br />    
6. 在eclipse中ä‹É用烦引功èƒ?br />     原来试过åQŒä‹É用artifactory¿Uæœä¹Ÿå¯ä»¥ä‹É用Artifact的烦引功能,但是ç”׃ºŽä¸çŸ¥é“怎么讄¡½®˜qœç¨‹ä»“库的indexåQŒæˆ‘只会讄¡½®
    当前artifactory¿Uæœå·²æœ‰çš„Artifact的烦引,对于˜q˜æ²¡æœ‰å¯¼å…¥åˆ°artifactory¿Uæœçš„Artifactž®±æ²¡æœ‰åŠžæ³•çƒ¦å¼•äº†åQŒå¾ˆä¸æ–¹ä¾¿ï¼Œ
    毕竟刚开始ä‹É用mavenæ—Óž¼Œæ‰€æœ‰ç”¨åˆ°çš„Artifact都是本地和私服没有而需要到˜qœç¨‹ä»“库取的ã€?br />    
    nexus中可以很方便的得到远½E‹ä»“库的Artifact的烦引,在上é?#8220;3. 配置nexus”ž®×ƒ»‹¾lè¿‡ã€‚下面介¾lå¦‚何在eclispe里面
    讄¡½®å’Œä‹É用烦引功能:
    1) 打开Maven Indexes çš„eclispe view
        在eclispe中选择window -> show view -> other ... -> Maven -> Maven Indexes
    2) æ·ÕdŠ nexusçš„index
        右键菜单中é€?add index", 在弹出的"Add Respository index"½H—口中填入:
            Repository URL: http://localhost:8081/nexus/content/groups/public
            Repository Id: nexus
            Index Update URL: 攄¡©ºåQŒæš‚时还不知道该怎么å¡?br />         加入后eclispe会自动load一‹Æ¡index信息åQŒç„¶åŽå°±å¯ä»¥åœ¨æ–°åŠ å…¥çš„index下可以拉出极大数量的Artifact信息ã€?br />     3) ‹¹‹è¯•一下ä‹Éç”?br />         找个pom.xmlæ–‡äšgåQŒå³é”?-> Add DependencyåQ?然后填入一个关键词åQŒæ¯”如我填入minaåQŒé©¬ä¸Šå¡«å‡ºå’Œmina相关的一äº?br />         选择åQŒæˆ‘扑ֈ°apache minaåQŒåŒå‡ÀLœ€æ–îC¸€ä¸ªç‰ˆæœ¬ã€‚会自动在pom.xmlæ–‡äšg中增加以下内容:

        <dependency>
            
<groupId>org.apache.directory.mina</groupId>
            
<artifactId>mina-core</artifactId>
            
<version>0.9.5</version>
        
</dependency>

        然后Maven自动下蝲jar包,再将jar包加入项目的build pathåQŒå…¨½E‹è‡ªåŠ¨åŒ–å¤„ç†åQŒçœŸæ˜¯çˆ½å•Šã€?br />
7. 为nexus增加新的proxy  repository
        æ–ÒŽ³•很简单,administration -> Repositories -> add -> proxyåQŒå¡«å†™åŽä¿å­˜å›_¯ã€‚但是要注意åQŒnexus不会自动ž®†æ–°åŠ å…¥çš„repositoryæ·ÕdŠ åˆ°group中,而我们一般喜‹Æ¢ç›´æŽ¥ä‹É用默认的"public repository" groupåQ?比如前面我在mavençš„profile中就只设¾|®äº†˜q™ä¸€ä¸ªURLåQ?http://localhost:8081/nexus/content/groups/public。因此需要手工修æ”?public repository" group的设¾|®ï¼Œž®†åˆšæ‰æ·»åŠ çš„proxy  repository加到¾l„中ã€?br />         推荐的repository有:
                1) jboss         http://repository.jboss.com/maven2/
                2) sun            http://download.java.net/maven/2/
                3)k-int           http://developer.k-int.com/maven2/
                        加入˜q™ä¸ª¾U¯çÑa是因为它有sunçš„jmxri/jmxtools˜q™äº›ArtifactåQŒå¼ºçƒˆé„™è§†sunåQŒè‡ªå·Þqš„官方repository居然没有ã€?br /> 8. æ€È»“
    很明显,nexus无论是在界面åQŒåŠŸèƒ½ï¼Œæ“ä½œä¸Šï¼Œéƒ½æ¯”artifactory强大的多ã€?br />     因此推荐大家使用nexus替代artifactoryä½œäØ“maven¿Uæœã€?br />    
updates:
1.  2008.11.28 
ç”׃ºŽå…¬å¸å‡çñ”操作¾pȝ»ŸåQŒå‘Šåˆ«è€æ—§ä¸å ªçš„windows2000升çñ”到vistaåQŒå› æ­¤é‡æ–°å®‰è£…了nexus. 新版本的nexusä¼ég¹Žå¢žåŠ äº†ä¸ž®‘小的功能比如对remote index的支持,具体没有æ·Þq©¶åQŒä¸˜q‡èƒ½ä¸æ–­æ›´æ–°å®žåœ¨æ˜¯å¾ˆä»¤äh‹Æ£æ…°ã€‚以后就打算用nexus了ã€?br />    

]]>
初学maven(2)-maven/artifactory/m2eclipse安装全过½E?/title><link>http://www.aygfsteel.com/libin2722/articles/250008.html</link><dc:creator>½C¼ç‰©</dc:creator><author>½C¼ç‰©</author><pubDate>Mon, 05 Jan 2009 15:25:00 GMT</pubDate><guid>http://www.aygfsteel.com/libin2722/articles/250008.html</guid><wfw:comment>http://www.aygfsteel.com/libin2722/comments/250008.html</wfw:comment><comments>http://www.aygfsteel.com/libin2722/articles/250008.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/libin2722/comments/commentRss/250008.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/libin2722/services/trackbacks/250008.html</trackback:ping><description><![CDATA[前段旉™—´ç ”ç©¶˜q‡ä¸€ä¸‹mavenåQŒä¸­é€”因为工作忙搁置了一ŒD‰|—¶é—ß_¼Œé‡æ–°å†çœ‹æ—¶å‘现安装过½E‹åŸºæœ¬å¿˜å…‰ã€‚只好找资料看然后再来一遍,ž®†mavenåQŒartifactoryå’Œm2eclipse安装使用的全˜q‡ç¨‹è®°å½•整理出来åQŒå¤‡å¿˜ã€‚另外我惌™¿™äº›èµ„料应该比较适合maven的入门新手,照做一遍就可以完成三个东西的安装设¾|®ï¼Œç„¶åŽž®±å¯ä»¥å­¦ä¹ å’Œä½¿ç”¨äº†ã€?br /> <br /> 一. 安装maven<br />     安装官方标准的安装方式(http://maven.apache.org/download.html#InstallationåQ‰å®‰è£…,步骤如下<br />     1. 下蝲解压¾~©apache-maven-2.0.9-bin.zip到安装目å½?br />     2. 增加环境变量M2_HOMEåQŒæŒ‡å‘maven的安装目录,注意不能ä»?\"¾l“å°¾<br />     3. 增加åQˆå¯é€‰ï¼‰maven环境变量MAVEN_OPTSåQŒå€égØ“"-Xms256m -Xmx512m"åQŒåŽ¾l­å¯ä»¥å¢žåŠ å…¶ä»?br />     4. 修改PathåQŒå¢žåŠ?M2_HOME%/bin到Path路径ä¸?br />     5. ¼‹®ä¿JAVA_HOME环境变量存在òq¶æ­£¼‹®è®¾¾|®ï¼Œ¼‹®ä¿%JAVA_HOME%/bin目录在Path路径ä¸?br />     <br />     安装完毕后,在命令行执行"mvn --version"‹‚€‹¹‹maven是否正确安装ã€?br />     <br />     补充åQ?br />     1. 如果是ä‹É用代理上¾|‘,需要在maven的配¾|®æ–‡ä»¶åŠ å…¥ç›¸åº”çš„ä»£ç†ä¿¡æ¯<br />         否则会报错:<br />         The pulgin 'org.apache.maven.plugins:maven-archetype-plugin' does not exist or valid version could be found<br />         ......<br />         解决æ–ÒŽ³•åQ?br />         打开文äšg maven/conf/settings.xmlåQŒæ‰¾åˆ?lt;proxies>åQŒå°†åŽŸæ¥æ³¨é‡ŠæŽ‰çš„<proxy>打开åQŒä¿®æ”¹ç›¸åº”的信息卛_¯ã€?br />         注意åQ?br />         1.åQ?lt;host>iproxy-sh.cn.ao.ericsson.se</host> ˜q™é‡Œä¸è¦ç”?http://"å¼€å¤ß_¼Œå¦åˆ™ä¼šæ— æ³•连æŽ?br />         2. ) 如果用户名、密码不需要,可以删除<username><password>åQŒè®¾¾|®äØ“½IÞZ¹Ÿè¡Œã€?br />         <br /> <br /> äº? 安装Artifactory<br /> <br />     按照官方文档åQŒhttp://wiki.jfrog.org/confluence/display/RTF/InstallingåQ?标准安装åQŒç®€å•说ž®±æ˜¯ä¸‰æ­¥åQ?br />     1. 下蝲òq¶è§£åŽ‹ç¾ƒæœ€æ–°ç‰ˆæœ¬çš„artifactory-1.3.0-beta-2.zip<br />     2. 双击bin目录下的artifactory.batæ–‡äšgåQŒå¯åЍartifactoryã€?br />         注意必须保证JAVA_HOME正确讄¡½®åQŒåƈ且jdk的版本是5.0或更高ã€?br />     3. 用浏览器打开http://localhost:8081/artifactoryåQŒä‹É用admin/passwordç™Õd½•<br />     <br />     配置ArtifactoryåQŒåœ¨Artifactory安装目录下的etc目录下,比较常用的是修改jetty.xml中的端口讄¡½®åQŒå°†é»˜è®¤çš?081端口<br />     修改为其他。还有如果Artifactory是需要ä‹É用代码连接网¾lœï¼Œéœ€è¦ä¿®æ”¹artifactory.config.xml中的proxiesã€?br />     <br /> ä¸? 安装m2eclipse插äšg<br />     <br />     参照官网文档http://m2eclipse.codehaus.org/ã€?br />     找了一下没有zip下蝲åQŒåªèƒ½ç”¨eclipse通过update site下蝲安装åQŒæ— æ³•ä‹É用我最喜欢的link方式åQŒæœ‰äº›é—憾ã€?br />     安装地址如下åQ?br />         http://m2eclipse.sonatype.org/update/<br />     更新后会自动变成三个siteåQŒä¸€ä¸ªä¸å¯ç”¨åQŒå¦å¤–两个版本同步,有新旧两个版本可以选择åQŒå½“焉™€‰æœ€æ–°çš„一ä¸?00807**的版本ã€?br />     <br />     安装好后åQŒå°±å¯ä»¥ä½¿ç”¨m2eclipse插äšg为项目增加pom.xmlæ–‡äšg了。有了m2eclipse的图形界面ä‹É得操作显得很½Ž€å•,å®ÒŽ˜“理解和掌握ã€?br /> <br /> update 20081128: <br />     升çñ”操作¾pȝ»Ÿåˆ°vistaåQŒjdkåˆ?.7åQŒeclipseåˆ?.4后,安装新版本的mavenåQŒä¸€åˆ‡æ­£å¸¸ï¼Œä½†æ˜¯å¯åŠ¨æ—¶ä¼šå¼¹å‡º½H—口åQŒè¯´maven<br /> 需要eclipse在jdk下运行,而不应该是jre(奇怪以前安装时怎么没有˜q™ç§è¦æ±‚åQŒéš¾é“是新版本引入的新功能?)。按照提½Cºç»™å‡ºçš„廸™®®˜q›è¡Œä»¥ä¸‹æ“ä½œåQ?br /> <br /> 1.要求修改eclipse.iniæ–‡äšg<br />     加入两行代码åQŒæ³¨æ„ä¸è¦å†™åœ¨ä¸€è¡Œï¼Œå¦åˆ™æ— æ³•生效ã€?br />     -vm<br />     C:\aoxj\soft\java\jdk\jdk67\bin\javaw<br /> 2.讄¡½®installedJRE<br />     直接˜q›å…¥eclipse的设¾|®ï¼Œåœ¨installedJRE中加入新的jre指向jdkåQŒç„¶åŽå°†é»˜è®¤çš„jre删除ã€?br />     <br /> å›? 技巧小¾l?br />     ˜q™å‡ å¤©çš„æ‘¸çƒ¦ä¸­ï¼Œå‘现一些mavenå’Œm2eclipseçš„ä‹É用小技巧,æ€È»“下来主要有以下几点:<br />     <br />     1. repositories讄¡½®ä¸è¦æ”‘Öˆ°™å¹ç›®çš„pom.xmlæ–‡äšgä¸?br />         在ä‹É用Artifactory搭徏¿UæœåŽï¼Œè‚¯å®šæ˜¯éœ€è¦å°†repositories讄¡½®ä¸ºæˆ‘们的¿Uæœåœ°å€çš„。下面的˜q™æ®µä»£ç ž®±å¯ä»¥å®Œæˆæˆ‘ä»?br />         的需要:<br />       <repositories><br />         <repository><br />             <id>artifactory</id><br />             <name>local private artifactory</name><br />             <url>http://127.0.0.1:8081/artifactory/repo/</url><br />         </repository><br />       </repositories><br />         但是˜q™æ®µä»£ç æ”‘Öˆ°å“ªé‡Œæ¯”较好呢åQŸæŒ‰ç…§maven的设¾|®ï¼Œå¯ä»¥æ”‘Öˆ°%MAVEN_HOME%/conf/settings.xml, ~/.m2/settings.xmlå’?br />         ™å¹ç›®çš„pom.xmlæ–‡äšg中,上面三个讄¡½®å¯ä»¥è¦†ç›–åQŒpom.xml中设¾|®æ˜¯æœ€ç›´æŽ¥äº†å½“的。但是考虑到repositories信息是完全有<br />         可能变化的,ž®¤å…¶æ˜¯ä‹É用私服,万一公司的私服换个地址éšùN“所有项目的pom.xmlæ–‡äšg都设¾|®ä¸€éï¼Ÿ ˜q˜æœ‰pom.xmlæ–‡äšg是用<br />         来保存当前项目的多种依赖信息的,repositories信息应该和当前具体项目没有直接联¾p…R€‚因此不应该攑ֈ°pom.xmlæ–‡äšg中ã€?br />         ž®¤å…¶åœ¨pom.xmlæ–‡äšg需要保存到cvsåQŒsubversion½{‰ç‰ˆæœ¬æŽ§åˆ¶ç³»¾lŸä¸­åQŒå¯å˜çš„repositories信息ž®±æ›´ä¸åˆé€‚保存了ã€?br />         因此需要将repositories信息讄¡½®åœ?MAVEN_HOME%/conf/settings.xml或~/.m2/settings.xmlåQŒè¿™æ ·å°±­‘›_¤Ÿç‰|´»äº†ã€?br />         <br />         实践中发çŽîC¸€ä¸ªæ¯”较奇怪的地方åQŒæˆ‘使用的是maven2.0.9版本åQŒä¿®æ”?MAVEN_HOME%/conf/settings.xml讄¡½®å±…然无效åQŒåªèƒ?br />         copy一份到~/.m2/settings.xmlåQˆè¿™ä¸ªæ–‡ä»‰™»˜è®¤æ˜¯ä¸ä¼šè‡ªåŠ¨å»ºç«‹çš„ï¼‰åQŒç„¶åŽä¿®æ”¹å°±å¯ä»¥æ­£å¸¸ç”Ÿæ•ˆäº†ã€‚没有查清楚原因åQŒå¥½åœ?br />         ˜q™ä¸¤ä¸ªåœ°æ–¹å¯¹æˆ‘没有实质区别,放~/.m2/也能接受åQŒåªæ˜¯è¦è®°å¾—备䆾一‹Æ¡é¿å…é‡è£…ç³»¾lŸæ—¶è¢«åˆ é™¤ã€?br />         <br />     2. settings.xml讄¡½®repositories的最½Ž€å•æ–¹å¼?br />         发现最½Ž€å•的办法ž®±æ˜¯æ‰“å¼€settings.xmlæ–‡äšg最下面的activeProfiles讄¡½®åQ?br />         <activeProfiles><br />             <activeProfile>artifactory</activeProfile><br />         </activeProfiles><br />         当然要先讄¡½®å¥½å¯¹åº”çš„profileåQŒå¯¹äºŽç®€å•场景,一个就­‘›_¤Ÿäº†ï¼Œ˜q™é‡Œæˆ‘指向我搭徏在本机的¿UæœåQ?br />         <br />     <profile><br />       <id>artifactory</id><br />       <repositories><br />         <repository><br />             <id>artifactory</id><br />             <name>local private artifactory</name><br />             <url>http://127.0.0.1:8081/artifactory/repo/</url><br />         </repository><br />       </repositories><br />       <pluginRepositories><br />         <pluginRepository><br />             <id>artifactory</id><br />             <name>local private artifactory</name><br />             <url>http://127.0.0.1:8081/artifactory/plugins-releases</url><br />             <snapshots><br />                 <enabled>false</enabled><br />             </snapshots><br />         </pluginRepository><br />     </pluginRepositories><br />     </profile><br />     <br />     ™åÞZ¾¿æä¸€ä¸‹settings.xmlæ–‡äšg中localRepository的设¾|®ï¼Œ˜q™ä¸ªè®„¡½®ç”¨æ¥çŸ¥ålocalRepository的目录,默认不打开åQŒä‹É用默认å€?br />     ~/.m2/repositoryåQŒä¸ªäºÞZ¸å–œæ¬¢åQŒæˆ‘ž®Þq›´æŽ¥ä¿®æ”¹äؓ固定位置åQ?br />     <localRepository>G:/soft/maven/localRepository</localRepository><br />         <br />     3. dependencyçš„classifier必须正确讄¡½®<br />         在下载testng时出现问题,始终无法从官¾|‘下载testngçš„jar包,但是可以下蝲到testng-5.8.pomæ–‡äšg。反复查找才发现æ˜?br />         testngçš„jar包是区分jdk版本的,大家从这里可以看åˆ?br />         http://repo1.maven.org/maven2/org/testng/testng/5.8/<br />         testngçš„jar包是æœ?.4å’?.5的两¿Uä¸‹è½½ã€‚增加classifier讄¡½®åˆ¶å®šå…·ä½“jdk版本之后ž®±å¯ä»¥æ­£å¸¸å·¥ä½œäº†ã€?br />         当然如果artifact没有jdk的差异就可以不需要设¾|®è¿™ä¸ªå‚æ•°ã€?br />         <dependency><br />             <groupId>org.testng</groupId><br />             <artifactId>testng</artifactId><br />             <version>5.8</version><br />             <classifier>jdk15</classifier><br />         </dependency><br />         <br />     4. groupIdå’ŒartifactId的获取方å¼?br />         使用mavenåQŒå¾ˆç›´æŽ¥ž®×ƒ¼šé‡åˆ°˜q™ä¸ªé—®é¢˜åQŒåˆ°åº•这个东西的groupIdå’ŒartifactId是什么呢åQŸæ€ÖM¸èƒ½çžŽçŒœå§åQ?br />         ˜q™é‡ŒæŽ¨è˜q™ä¸ªartifact查询¾|‘ç«™http://mvnrepository.com/åQŒå¯ä»¥æŸ¥æ‰‘Öˆ°25000+个artifact的信息,基本我们能用到的éƒ?br />         有了ã€?br />         ¾l“合官网http://repo1.maven.org/maven2/ ™åµé¢åQŒåŸºæœ¬å¯ä»¥æžå®šæ‰€æœ‰é—®é¢˜ã€‚上面testng需要设¾|®classifier的问题我ž®±æ˜¯çœ‹åˆ°<br />         http://repo1.maven.org/maven2/org/testng/testng/5.8/˜q™ä¸ª™åµé¢åŽæ‰å‘现问题所在的ã€?br /> <br />     5. attifactoryçš„http proxy讄¡½®<br />         上面attifactory安装时简单的介绍了一ä¸?çš„http proxy讄¡½®åQŒéœ€è¦ä¿®æ”¹artifactory.config.xml中的<proxies>。但是这个是不够的,必须要再åœ?lt;remoteRepository>中明¼‹®ç”¨<proxyRef>指明使用哪个代理åQŒæ ¼å¼å‚考如下:<br />         <remoteRepository><br />             .........<br />             <url>http://people.apache.org/repo/m2-snapshot-repository</url><br />             <proxyRef>your-proxy</proxyRef><br />         </remoteRepository><br /> proxies中key要对应好<br />         <proxies><br />             <proxy><br />             <key>your-proxy</key><br />             ......<br />         </proxies><br />     <br /> äº? 比较有ä­h值的参考资æ–?br />     陆箋google到的一些资料,比较å¥?<br />     maven官网的资æ–?br />         很全åQŒå¾ˆå®Œæ•´åQŒéžå¸¸å€¼å¾—çœ‹ä¸€éï¼Œåªæ˜¯æœ‰ç‚¹å¤ªå¤šäº†ï¼ŒæŒø™€—时间。而且是英文,暂时没有知道对应的中文版本ã€?br />     一些细¼„Žçš„资料åQŒä¸»è¦æ˜¯blog之类<br />     1) maven settings.xml <br />         http://blog.csdn.net/totogogo/archive/2007/12/18/1946691.aspx<br />     2)  Maven dependency and repository<br />         http://blog.csdn.net/totogogo/archive/2007/12/20/1956381.aspx<br />     3)  maven profiles<br />         http://blog.csdn.net/totogogo/archive/2007/12/19/1953379.aspx<br />     <img src ="http://www.aygfsteel.com/libin2722/aggbug/250008.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/libin2722/" target="_blank">½C¼ç‰©</a> 2009-01-05 23:25 <a href="http://www.aygfsteel.com/libin2722/articles/250008.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>初学maven(1)-常见ž®é—®é¢˜é›†é”?/title><link>http://www.aygfsteel.com/libin2722/articles/250006.html</link><dc:creator>½C¼ç‰©</dc:creator><author>½C¼ç‰©</author><pubDate>Mon, 05 Jan 2009 15:23:00 GMT</pubDate><guid>http://www.aygfsteel.com/libin2722/articles/250006.html</guid><wfw:comment>http://www.aygfsteel.com/libin2722/comments/250006.html</wfw:comment><comments>http://www.aygfsteel.com/libin2722/articles/250006.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/libin2722/comments/commentRss/250006.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/libin2722/services/trackbacks/250006.html</trackback:ping><description><![CDATA[初学mavenåQŒé‡åˆîC¸ž®‘问题,记录下来åQŒå‘µå‘µï¼Œä¾ç„¶æ˜¯å¤‡å¿˜å…¼å…׃ínã€?br /> <br /> 一. The pulgin 'org.apache.maven.plugins:<span id="wmqeeuq" class="hilite1">maven-archetype-plugin</span>' does <span id="wmqeeuq" class="hilite2">not</span> <span id="wmqeeuq" class="hilite3">exist</span> or valid version could be found <br /> <br />     安装官方标准的安装方式(http://maven.apache.org/download.html#InstallationåQ‰å®‰è£…完毕,˜qè¡Œmvn --version没有问题ã€?br />     然后按照"maven in 5 minutes"(http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html) 的第一个例子,执行<br /> <div style="border-right: rgb(204,204,204) 1px solid; padding-right: 5px; border-top: rgb(204,204,204) 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: rgb(204,204,204) 1px solid; width: 98%; padding-top: 4px; border-bottom: rgb(204,204,204) 1px solid; background-color: rgb(238,238,238)"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: rgb(0,0,0)">mvn archetype:create </span><span style="color: rgb(0,0,0)">-</span><span style="color: rgb(0,0,0)">DgroupId</span><span style="color: rgb(0,0,0)">=</span><span style="color: rgb(0,0,0)">com.mycompany.app </span><span style="color: rgb(0,0,0)">-</span><span style="color: rgb(0,0,0)">DartifactId</span><span style="color: rgb(0,0,0)">=</span><span style="color: rgb(0,0,0)">my</span><span style="color: rgb(0,0,0)">-</span><span style="color: rgb(0,0,0)">app<br /> </span></div>     ¾l“果报错åQ?br />     The pulgin 'org.apache.maven.plugins:<span id="wmqeeuq" class="hilite1">maven-archetype-plugin</span>' does <span id="wmqeeuq" class="hilite2">not</span> <span id="wmqeeuq" class="hilite3">exist</span> or valid version could be found <br />     ......<br /> <br />     google了一下发现解å†Ïx–¹æ¡ˆï¼ŒåŽŸæ¥æ˜¯ç½‘¾lœé…¾|®çš„问题åQŒå¦‚æžœä‹É用代理上¾|‘å¿…™åÖM¿®æ”¹maven的配¾|®æ–‡ä»¶åŠ å…¥ç›¸åº”çš„ä»£ç†ä¿¡æ¯ã€?br />     打开文äšg maven/conf/settings.xmlåQŒæ‰¾åˆ?lt;proxies>åQŒå°†åŽŸæ¥æ³¨é‡ŠæŽ‰çš„<proxy>打开åQŒä¿®æ”¹ç›¸åº”的信息卛_¯ã€?br />     注意åQ?br />     1.åQ?lt;host>iproxy-sh.cn.ao.ericsson.se</host> ˜q™é‡Œä¸è¦ç”?http://"å¼€å¤ß_¼Œå¦åˆ™ä¼šæ— æ³•连æŽ?br />     2. ) 如果用户名、密码不需要,可以删除<username><password>åQŒè®¾¾|®äØ“½IÞZ¹Ÿè¡Œã€?br /> <br /> äº? artifactory¿Uæœå®‰è£…问题<br />     对于单机来说åQŒmaven从远½E‹ä»“库取jar包等资源是完全合理的。但是如果一个team甚至一个公司,每个人的maven都从˜qœç¨‹ä»“库取,那么花在文äšg下蝲上的旉™—´ž®±å¤ªå¤šäº†åQŒè€Œä¸”完全没有必要。因此设¾|®ä¸€ä¸ªå¼€å‘团队共享的Maven2的私服就必不可少了ã€?br />     Maven2的私服,当然首选artifactoryã€?br />     跑到artifactory的官¾|‘,down下来最新的1.30-beta1åQŒå®‰è£…非常简单,windows下一个batæ–‡äšg直接启动。之后修改maven配置åQŒåŠ å…?br /> <div style="border-right: rgb(204,204,204) 1px solid; padding-right: 5px; border-top: rgb(204,204,204) 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: rgb(204,204,204) 1px solid; width: 98%; padding-top: 4px; border-bottom: rgb(204,204,204) 1px solid; background-color: rgb(238,238,238)"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)"><</span><span style="color: rgb(0,0,0)">repositories</span><span style="color: rgb(0,0,0)">></span><span style="color: rgb(0,0,0)">  <br />      </span><span style="color: rgb(0,0,0)"><</span><span style="color: rgb(0,0,0)">repository</span><span style="color: rgb(0,0,0)">></span><span style="color: rgb(0,0,0)">  <br />          </span><span style="color: rgb(0,0,0)"><</span><span style="color: rgb(0,0,0)">id</span><span style="color: rgb(0,0,0)">></span><span style="color: rgb(0,0,0)">central</span><span style="color: rgb(0,0,0)"></</span><span style="color: rgb(0,0,0)">id</span><span style="color: rgb(0,0,0)">></span><span style="color: rgb(0,0,0)">  <br />          </span><span style="color: rgb(0,0,0)"><</span><span style="color: rgb(0,0,0)">url</span><span style="color: rgb(0,0,0)">></span><span style="color: rgb(0,0,0)">http:</span><span style="color: rgb(0,128,0)">//</span><span style="color: rgb(0,128,0)">localhost:8081/artifactory/repo</url>  </span><span style="color: rgb(0,128,0)"><br /> </span><span style="color: rgb(0,0,0)">         </span><span style="color: rgb(0,0,0)"><</span><span style="color: rgb(0,0,0)">snapshots</span><span style="color: rgb(0,0,0)">></span><span style="color: rgb(0,0,0)">  <br />              </span><span style="color: rgb(0,0,0)"><</span><span style="color: rgb(0,0,0)">enabled</span><span style="color: rgb(0,0,0)">></span><span style="color: rgb(0,0,255)">false</span><span style="color: rgb(0,0,0)"></</span><span style="color: rgb(0,0,0)">enabled</span><span style="color: rgb(0,0,0)">></span><span style="color: rgb(0,0,0)">  <br />          </span><span style="color: rgb(0,0,0)"></</span><span style="color: rgb(0,0,0)">snapshots</span><span style="color: rgb(0,0,0)">></span><span style="color: rgb(0,0,0)">  <br />      </span><span style="color: rgb(0,0,0)"></</span><span style="color: rgb(0,0,0)">repository</span><span style="color: rgb(0,0,0)">></span><span style="color: rgb(0,0,0)">  <br />      </span><span style="color: rgb(0,0,0)"><</span><span style="color: rgb(0,0,0)">repository</span><span style="color: rgb(0,0,0)">></span><span style="color: rgb(0,0,0)">  <br />          </span><span style="color: rgb(0,0,0)"><</span><span style="color: rgb(0,0,0)">id</span><span style="color: rgb(0,0,0)">></span><span style="color: rgb(0,0,0)">snapshots</span><span style="color: rgb(0,0,0)"></</span><span style="color: rgb(0,0,0)">id</span><span style="color: rgb(0,0,0)">></span><span style="color: rgb(0,0,0)">  <br />          </span><span style="color: rgb(0,0,0)"><</span><span style="color: rgb(0,0,0)">url</span><span style="color: rgb(0,0,0)">></span><span style="color: rgb(0,0,0)">http:</span><span style="color: rgb(0,128,0)">//</span><span style="color: rgb(0,128,0)">localhost:8081/artifactory/repo</url>  </span><span style="color: rgb(0,128,0)"><br /> </span><span style="color: rgb(0,0,0)">         </span><span style="color: rgb(0,0,0)"><</span><span style="color: rgb(0,0,0)">releases</span><span style="color: rgb(0,0,0)">></span><span style="color: rgb(0,0,0)">  <br />              </span><span style="color: rgb(0,0,0)"><</span><span style="color: rgb(0,0,0)">enabled</span><span style="color: rgb(0,0,0)">></span><span style="color: rgb(0,0,255)">false</span><span style="color: rgb(0,0,0)"></</span><span style="color: rgb(0,0,0)">enabled</span><span style="color: rgb(0,0,0)">></span><span style="color: rgb(0,0,0)">  <br />          </span><span style="color: rgb(0,0,0)"></</span><span style="color: rgb(0,0,0)">releases</span><span style="color: rgb(0,0,0)">></span><span style="color: rgb(0,0,0)">  <br />      </span><span style="color: rgb(0,0,0)"></</span><span style="color: rgb(0,0,0)">repository</span><span style="color: rgb(0,0,0)">></span><span style="color: rgb(0,0,0)">  <br />  </span><span style="color: rgb(0,0,0)"></</span><span style="color: rgb(0,0,0)">repositories</span><span style="color: rgb(0,0,0)">></span><span style="color: rgb(0,0,0)">  <br />  </span><span style="color: rgb(0,0,0)"><</span><span style="color: rgb(0,0,0)">pluginRepositories</span><span style="color: rgb(0,0,0)">></span><span style="color: rgb(0,0,0)">  <br />      </span><span style="color: rgb(0,0,0)"><</span><span style="color: rgb(0,0,0)">pluginRepository</span><span style="color: rgb(0,0,0)">></span><span style="color: rgb(0,0,0)">  <br />          </span><span style="color: rgb(0,0,0)"><</span><span style="color: rgb(0,0,0)">id</span><span style="color: rgb(0,0,0)">></span><span style="color: rgb(0,0,0)">central</span><span style="color: rgb(0,0,0)"></</span><span style="color: rgb(0,0,0)">id</span><span style="color: rgb(0,0,0)">></span><span style="color: rgb(0,0,0)">  <br />          </span><span style="color: rgb(0,0,0)"><</span><span style="color: rgb(0,0,0)">url</span><span style="color: rgb(0,0,0)">></span><span style="color: rgb(0,0,0)">http:</span><span style="color: rgb(0,128,0)">//</span><span style="color: rgb(0,128,0)">localhost:8081/artifactory/plugins-releases</url>  </span><span style="color: rgb(0,128,0)"><br /> </span><span style="color: rgb(0,0,0)">         </span><span style="color: rgb(0,0,0)"><</span><span style="color: rgb(0,0,0)">snapshots</span><span style="color: rgb(0,0,0)">></span><span style="color: rgb(0,0,0)">  <br />              </span><span style="color: rgb(0,0,0)"><</span><span style="color: rgb(0,0,0)">enabled</span><span style="color: rgb(0,0,0)">></span><span style="color: rgb(0,0,255)">false</span><span style="color: rgb(0,0,0)"></</span><span style="color: rgb(0,0,0)">enabled</span><span style="color: rgb(0,0,0)">></span><span style="color: rgb(0,0,0)">  <br />          </span><span style="color: rgb(0,0,0)"></</span><span style="color: rgb(0,0,0)">snapshots</span><span style="color: rgb(0,0,0)">></span><span style="color: rgb(0,0,0)">  <br />      </span><span style="color: rgb(0,0,0)"></</span><span style="color: rgb(0,0,0)">pluginRepository</span><span style="color: rgb(0,0,0)">></span><span style="color: rgb(0,0,0)">  <br />      </span><span style="color: rgb(0,0,0)"><</span><span style="color: rgb(0,0,0)">pluginRepository</span><span style="color: rgb(0,0,0)">></span><span style="color: rgb(0,0,0)">  <br />          </span><span style="color: rgb(0,0,0)"><</span><span style="color: rgb(0,0,0)">id</span><span style="color: rgb(0,0,0)">></span><span style="color: rgb(0,0,0)">snapshots</span><span style="color: rgb(0,0,0)"></</span><span style="color: rgb(0,0,0)">id</span><span style="color: rgb(0,0,0)">></span><span style="color: rgb(0,0,0)">  <br />          </span><span style="color: rgb(0,0,0)"><</span><span style="color: rgb(0,0,0)">url</span><span style="color: rgb(0,0,0)">></span><span style="color: rgb(0,0,0)">http:</span><span style="color: rgb(0,128,0)">//</span><span style="color: rgb(0,128,0)">localhost:8081/artifactory/plugins-snapshots</url>  </span><span style="color: rgb(0,128,0)"><br /> </span><span style="color: rgb(0,0,0)">         </span><span style="color: rgb(0,0,0)"><</span><span style="color: rgb(0,0,0)">releases</span><span style="color: rgb(0,0,0)">></span><span style="color: rgb(0,0,0)">  <br />              </span><span style="color: rgb(0,0,0)"><</span><span style="color: rgb(0,0,0)">enabled</span><span style="color: rgb(0,0,0)">></span><span style="color: rgb(0,0,255)">false</span><span style="color: rgb(0,0,0)"></</span><span style="color: rgb(0,0,0)">enabled</span><span style="color: rgb(0,0,0)">></span><span style="color: rgb(0,0,0)">  <br />          </span><span style="color: rgb(0,0,0)"></</span><span style="color: rgb(0,0,0)">releases</span><span style="color: rgb(0,0,0)">></span><span style="color: rgb(0,0,0)">  <br />      </span><span style="color: rgb(0,0,0)"></</span><span style="color: rgb(0,0,0)">pluginRepository</span><span style="color: rgb(0,0,0)">></span><span style="color: rgb(0,0,0)">  <br />  </span><span style="color: rgb(0,0,0)"></</span><span style="color: rgb(0,0,0)">pluginRepositories</span><span style="color: rgb(0,0,0)">></span></div>     但是发现执行maven命ä×oæ—Óž¼Œmaven完全没有从私服上取文ä»Óž¼Œ˜q˜æ˜¯åˆ°é»˜è®¤çš„maven官网åŽÕd–了。反复修攚wƒ½ä¸è¡ŒåQŒæœ€åŽå‘现问题可能出现在artifactory上:ç™Õd½•artifactory的控制台后,点Virtual Repositories --ã€?repo 后直接报错,™åµé¢æŠ›ArrayIndexOutOfBoundsExceptionåQçœ‹url是http://localhost:8081/artifactory/repo/åQŒè¿™ä¸ªä¸ž®±æ˜¯ä¸Šé¢é…ç½®çš„地址吗?都抛异常了,让maven怎么取文ä»Óž¼Œæ‰‘Öˆ°é—®é¢˜äº†ï¼Œè™½ç„¶èŽ«åå…¶å¦™åQŒè¯•着删除后重新安装还是这个错误。晕倒,不清楚哪里出的问题,更不知该怎么攏V€‚看看版本是beta1åQŒè€Œä¸”下蝲数量只有几十åQŒæƒ³æƒ›_¯èƒ½æ˜¯æ–°ç‰ˆæœ¬çš„bugã€?br />     换成1.2.5finalåQŒä¸€åˆ‡éƒ½æ­£å¸¸äº†ã€?br />     我想应该是artifactory 1.3.0-beta1çš„bug吧ã€?br /> <br /> ä¸?<span lang="EN-US"><span id="wmqeeuq" class="hilite1"><span id="wmqeeuq" class="hilite1">maven</span></span></span><span style="font-family: 宋体">çš„èµ\径变é‡?/span><span lang="EN-US"><span id="wmqeeuq" class="hilite2"><span id="wmqeeuq" class="hilite2">M2_REPO</span></span></span><br />      使用mvn eclipse:eclipse命ä×o生成eclipse project后,在eclipse中impot˜q›æ¥åQŒç¼–译出错,原来是maven使用åˆîC¸€ä¸ªåä¸?#8220;<span lang="EN-US"><span id="wmqeeuq" class="hilite2"><span id="wmqeeuq" class="hilite2">M2_REPO</span></span></span>”çš„èµ\径变量ã€?br />      google了一下,<span style="font-family: 宋体">eclipseä¸?/span><span lang="EN-US"><span id="wmqeeuq" class="hilite2"><span id="wmqeeuq" class="hilite2">讄¡½®</span></span></span><span style="font-family: 宋体">变量</span><span lang="EN-US"><span id="wmqeeuq" class="hilite2"><span id="wmqeeuq" class="hilite2">M2_REPO的方式是åQ?br /> </span></span></span><span lang="EN-US">        Window -> Preferences -> Java -> Build Path -> Classpath Variables</span><span style="font-family: 宋体">åQ?/span><span lang="EN-US">New</span><span lang="EN-US">Name</span><span style="font-family: 宋体"> 填写"</span><span lang="EN-US"><span id="wmqeeuq" class="hilite2"><span id="wmqeeuq" class="hilite2">M2_REPO"</span></span></span><span style="font-family: 宋体">åQŒèµ\å¾„äØ“ä½ çš„æœ¬åœ°çš?/span><span lang="EN-US"><span id="wmqeeuq" class="hilite1"><span id="wmqeeuq" class="hilite1">maven</span></span></span><span style="font-family: 宋体">¾cÕdº“地址.</span> <p class="MsoListParagraph" style="margin-left: 49.6pt; text-indent: -1cm; text-align: left" align="left"><span style="font-family: 宋体">讄¡½®åŽé‡æ–°ç¼–译顺利通过åQŒè¿™æ ·å¯¼å…¥eclipse™å¹ç›®ž®±å®Œæˆäº†ã€?/span></p> <img src ="http://www.aygfsteel.com/libin2722/aggbug/250006.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/libin2722/" target="_blank">½C¼ç‰©</a> 2009-01-05 23:23 <a href="http://www.aygfsteel.com/libin2722/articles/250006.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> Ö÷Õ¾Ö©Öë³ØÄ£°å£º <a href="http://" target="_blank">ѰÎÚÏØ</a>| <a href="http://" target="_blank">°ÍÀï</a>| <a href="http://" target="_blank">¹ðÁÖÊÐ</a>| <a href="http://" target="_blank">°¢À­ÉÆÓÒÆì</a>| <a href="http://" target="_blank">Éç»á</a>| <a href="http://" target="_blank">ÐÇ×ù</a>| <a href="http://" target="_blank">ÅîÏªÏØ</a>| <a href="http://" target="_blank">ÎÄ»¯</a>| <a href="http://" target="_blank">¿ËÉ½ÏØ</a>| <a href="http://" target="_blank">л¯ÏØ</a>| <a href="http://" target="_blank">¿Æ¶û</a>| <a href="http://" target="_blank">¹²ºÍÏØ</a>| <a href="http://" target="_blank">°²¸£ÏØ</a>| <a href="http://" target="_blank">¿ª·âÊÐ</a>| <a href="http://" target="_blank">¶«·½ÊÐ</a>| <a href="http://" target="_blank">½ðÑôÏØ</a>| <a href="http://" target="_blank">¹®ÒåÊÐ</a>| <a href="http://" target="_blank">µ¤½­¿ÚÊÐ</a>| <a href="http://" target="_blank">ÄþÑôÏØ</a>| <a href="http://" target="_blank">ÁúÄÏÏØ</a>| <a href="http://" target="_blank">ÊæÀ¼ÊÐ</a>| <a href="http://" target="_blank">¶«·áÏØ</a>| <a href="http://" target="_blank">ÁéÎäÊÐ</a>| <a href="http://" target="_blank">Î人ÊÐ</a>| <a href="http://" target="_blank">°×ɽÊÐ</a>| <a href="http://" target="_blank">°¢À­¶ûÊÐ</a>| <a href="http://" target="_blank">Ï¢·éÏØ</a>| <a href="http://" target="_blank">ÒÀ°²ÏØ</a>| <a href="http://" target="_blank">ÄÏÕÄÏØ</a>| <a href="http://" target="_blank">ÁêË®</a>| <a href="http://" target="_blank">È«ÄÏÏØ</a>| <a href="http://" target="_blank">¶¼½­ÑßÊÐ</a>| <a href="http://" target="_blank">¿Ë¶«ÏØ</a>| <a href="http://" target="_blank">ÂÞ½­ÏØ</a>| <a href="http://" target="_blank">ÀÖÍ¤ÏØ</a>| <a href="http://" target="_blank">ÒË´ºÊÐ</a>| <a href="http://" target="_blank">ËÉ×ÌÊÐ</a>| <a href="http://" target="_blank">ºìÔ­ÏØ</a>| <a href="http://" target="_blank">ÁúÉ½ÏØ</a>| <a href="http://" target="_blank">¾ÅÕ¯¹µÏØ</a>| <a href="http://" target="_blank">¸Ú°ÍÏØ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>