??xml version="1.0" encoding="utf-8" standalone="yes"?>日韩精品一区二区三区三区免费,91亚洲国产,久久er精品视频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.htmlC物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>

C物 2013-10-10 23:08 发表评论
]]>
搭徏Maven的NexusU服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中,启动tomcatQ?br /> 2、访问:http://xxx/nexus-1.1.1/index.htmlQ?br /> 3、用admin/admin123dQ?br /> 4、修改admin的密码,但是不要修改别的属性和修改别的用户信息<br /> 5、进入administration中的repositoriesQ依ơ修改三个type是proxy的项目,其Download Remote Indexes修改为trueQ然后邮件他们,分别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下面Qsetting.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.htmlC物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

也就是说前面错误的信息都是一LQ只是后面返回的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也应该是nexusZ么默认情况下Release仓库的发布权限关闭的原因了。解册个问题的整体思\是? 部v构g的时候需要用用户名和密码登录,操作如下Q?br /> (1) 首先Releases仓库默认的Deployment Policy修改为“Allow Redeploy”;
(2) 然后在右边的Security下面的Users中,修改deployment帐号的密码,Ҏ是在帐号上右键,然后选择“Set Password?PSQ这个操作我找了好久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> 如果有hq要较真的话会想到帐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文gQ我们将刚刚产生的主密钥攑ֈ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和VirtualQ另外还有一个repository group(仓库l?用于对多个仓库进行组合。部|的时候只能部|到Hostedcd的仓库中Q如果是其他cd׃出现q个400错误?br />
q有一U情况也会出?00错误Q就是默认情况下部v构g到Releases仓库中有时也会出?00错误Q这个原因就像上面提到的那样QNexus? Releases仓库默认的Deployment Policy是“Disable Redeploy”,所以无Z在settings.xml文g中将server的username讄为deploymentq是使用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>



C物 2010-09-26 00:06 发表评论
]]>
maven2的主要配|pom.xmlhttp://www.aygfsteel.com/libin2722/articles/319958.htmlC物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来实现。主要描qC目Q包括配|文Ӟ开发者需要遵循的规则Q缺L理系l,l织和licensesQ项目的urlQ项目的依赖性,以及其他所有的目相关因素?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 
讄此依赖范围ؓsystemQ定义一个系l\径。不提倡?br />type:相应的依赖品包形式Q如jarQwar 
scope:用于限制相应的依赖范_包括以下的几U变量:
compile Q默认范_用于~译 
providedQ类g~译Q但支持你期待jdk或者容器提供,cM于classpath 
runtime:在执行时Q需要用?br />test:用于testd时用?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-coreQ但我们不想引用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 cdQ需要pom用于parent和合成多个项目。我们需要增加相应的值给父pomQ用于子目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 />
dependencyManagementQ?br />用于爉目配|共同的依赖关系Q主要配|依赖包相同因素Q如版本Qscope?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包括两个主要的元素Qbuild和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: 定义默认的目标或者阶Dc如install 
directory: ~译输出的目录?br />finalName: 生成最后的文g的样式?br />filter: 定义qoQ用于替换相应的属性文Ӟ使用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 falseQ是否装载插件扩展。默认false 
inherited: true or falseQ是否此插g配置会应用于pomsQ那些承于此的目 
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理
    pluginManagementQ插件管理以同样的方式包括插件元素,用于在特定的目中配|。所有承于此项目的子项目都能用。主要定义插件的共同元素

扩展元素集合
主要包括以下的元素:
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

表示需要扩展的插gQ必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
cM于settings.xml中的profilesQ增加了几个元素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>



C物 2010-05-03 16:55 发表评论
]]>
(?Nexus入门指南Q图文)http://www.aygfsteel.com/libin2722/articles/280027.htmlC物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仓库理器,如果你用MavenQ你可以?a >Maven中央仓库 下蝲所需要的构gQartifactQ,但这通常不是一个好的做法,你应该在本地架设一个Maven仓库服务器,在代理远E仓库的同时l护本地仓库Q以? 省带宽和旉QNexus可以满L需要。此外,他还提供了强大的仓库理功能Q构件搜索功能,它基于RESTQ友好的UI是一个extjs? REST客户端,它占用较的内存Q基于简单文件系l而非数据库。这些优点其日成为最行的Maven仓库理器?/p>

 

下蝲和安?/h2>

你可以从http://nexus.sonatype.org/downloads/ 下蝲最新版本的NexusQ笔者用的?.3.0版本?/p>

Nexus提供了两U安装方式,一U是内嵌Jetty的bundleQ只要你有JREp直接q行。第二种方式是WARQ你只须单的其发布到web容器中即可用?/p>

 

Bundle方式安装

解压nexus-webapp-1.3.0-bundle.zip 至Q意目录,?em>D:\dev_tools Q然后打开CMDQcd至目?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/nexusQ你会看到如下的面Q?/p>

要停止NexusQCtrl+C卛_Q此外InstallNexus.bat可以用来Nexus安装成一个windows服务Q其余的脚本则对应了启动Q停止,暂停Q恢复,卸蝲Nexus服务?/p>

 

WAR方式安装

你需要有一个能q行的web容器Q这里以TomcatZQ加入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然后启动CMDQcd?em>D:\dev_tools\apache-tomcat-6.0.18\bin\ 目录Q运?strong>startup.bat 。一切OKQ现在可以打开览器访问http://127.0.0.1:8080/nexusQ你会得到和上图一L界面?/p>

 

代理外部Maven仓库

登陆

要管理NexusQ你首先需要以理员n份登陆,点击界面右上角的loginQ输入默认的d名和密码Qadmin/admin123Q登陆成功后Q你会看到左边的D栏增加了很多内容Q?/p>

q里Q可以管理仓库,配置NexuspȝQ管理Q务,理用户Q角Ԍ权限Q查看系l的RSS源,理及查看系l日志,{等。你会看到Nexus的功能十分丰富和强大Q本文,W者只介绍一些最基本的管理和操作?/p>

 

代理Maven中央仓库

点击左边D栏的RepositoriesQ界面的主面板会昄所有一个所有仓库及仓库l的列表Q你会看到它们的Type字段的值有groupQhostedQproxyQvirtual。这里我们不兛_virtualQ只介绍下另外三U类型:

  • hostedQ本C库,通常我们会部|自q构g到这一cd的仓库?/li>
  • proxyQ代理仓库,它们被用来代理远E的公共仓库Q如maven中央仓库?/li>
  • groupQ仓库组Q用来合q多个hosted/proxy仓库Q通常我们配置maven依赖仓库l?/li>

由此我们知道Q我们需要配|一个Maven中央仓库的proxyQ其实Nexus已经内置了Maven CentralQ但我们需要做一些配|。点M库列表中的Maven CentralQ你会注意到它的Policy是releaseQ这说明它不会代理远E仓库的snapshot构gQ这是有原因的,q程仓库? snapshot版本构g不稳定且不受你控Ӟ使用q样的构件含有潜在的风险。然后我们发C面板下方有三个TabQ分别ؓ BrowseQConfiguration和MirrorsQ我们点击Configurationq行配置Q你现在需要关心的是两个配|? :“Remote Storage Location”ؓq程仓库的地址Q对于Maven Central来说是http://repo1.maven.org/maven2/Q“Download Remote Indexes”顾名思义是指是否下蝲q程索引文gQMaven Central的该字段默认为FalseQ这是ؓ了防止大量Nexus无意识的L耗中央仓库的带宽Q中央仓库有大量的构Ӟ其烦引文件也很大Q。这里我 们需要将其设|ؓTrueQ然后点击Save。在Nexus下蝲的中央仓库烦引文件之后,我们可以在本地搜烦中央仓库的所有构件。下囑ֱCZ我们刚才所 涉及的配|:

 

d一个代理仓?/em>

q里我们再D一个例子,我们惌代理Sonatype的公׃库,其地址为:http://repository.sonatype.org /content/groups/public/。步骤如下,在Repositories面板的上方,点击AddQ然后选择Proxy RepositoryQ在下方的配|部分,我们填写如下的信息:Repository ID - sonatypeQRepository Name - Sonatype RepositoryQRemote Storage Location - http://repository.sonatype.org/content/groups/public/。其余的保持默认|需要注意的? Repository PolicyQ我们不想代理snapshot构gQ原因前面已l描q。然后点击Save。配|页面如下:

 

理本地Maven仓库

Nexus预定义了3个本C库,分别为ReleasesQSnapshotsQ和3rd Party。这三个仓库都有各自明确的目的。Releases用于部v我们自己的release构gQSnapshots用于部v我们自己? snapshot构gQ?rd Party用于部vW三ҎӞ有些构g如Oracle的JDBC驱动Q我们不能从公共仓库下蝲刎ͼ我们需要将光|到自己的仓库中?/p>

当然你也可以创徏自己的本C库,步骤和创Z理仓库类|点击Repository面板上方的Add按钮Q然后选择Hosted RepositoryQ然后在下方的配|面板中输入id和nameQ注意这里我们不再需要填写远E仓库地址QRepository Type则ؓ不可修改的hostedQ而关于Repository PolicyQ你可以Ҏ自己的需要选择Release或者SnapshotQ如图:

 

理Maven仓库l?/h2>

Nexus中仓库组的概忉|Maven没有的,在Maven看来Q不你是hosted也好Qproxy也好Q或者group也好Q对我都是一? 的,我只根据groupIdQartifactIdQversion{信息向你要构g。ؓ了方便Maven的配|,Nexus能够多个仓 库,hosted或者proxy合ƈ成一个groupQ这PMaven只需要依赖于一个groupQ便能用所有该group包含的仓库的内容?/p>

Nexus预定义了“Public Repositories”和“Public Snapshot Repositories”两个仓库组Q前者默认合q所有预定义的Release仓库Q后者默认合q所有预定义的Snapshot仓库。我们在本文前面? 部分创徏了一个名为“Sonatype Repository”的仓库Q现在将其合q到“Public Repositories”中?/p>

点击仓库列表中的“Public Repositories”,然后选择下方?Configuration" TabQ在配置面板中,右边“Avaiable Repositories”中的“Sonatype Repository”拖拽到左边的“Ordered Group Repository”中Q如图:

创徏仓库l和创徏proxy及hosted仓库cMQ这里不再赘q。需要注意的是format字段需要填写“maven2”,d你感兴趣的仓库即可?/p>

 

搜烦构g

在浩大的Maven仓库中一下下点击链接Q浏览\径以L感兴的构g是一件很郁闷的事情。NexusZnexus-indexer提供构g搜烦 功能Q要惛_仓库q行搜烦Q无论是hostedQproxyQ或者groupQ你都必ȝ认烦引文件存在。这一点对于代理仓库尤光要,有些q程仓库可能 Ҏ没有烦引,所以你无法搜烦q些代理仓库。有些远E仓库的q程索引非常大,如中央仓库达C70M左右Q那么第一ơ下载烦引需要花很多旉Q所以要? 望得到搜索结果,保看到如下的文Ӟ

一旦你的Nexus拥有了本地或者远E仓库的索引文gQ你可以n受Nexus的构件搜索功能了。不论登陆与否,你都可以使用关键字进行模p搜索, 比如我在左边D栏上部的搜烦框内输入junitQ然后点L索按钮,双立刻会分|C?00多条的junit相关构g信息。如果你了解更多的信息,? 也可以通过限定groupIdQartifactIdQversionq行搜烦Q点d航栏中的“Advanced Search”,点击双所有页面左上角的下拉框Q选择“GAV Search”。笔者这里输入junit:junit:4.4Q然后回车:

选择一Ҏ索结果,在页面下方会昄“Artifact Information”的面板Q你可以点击"artifact"或?pom"下蝲对应文gQ而该面板双更显CZ一个Maven依赖配置Q你可以直接复制该配|到Maven POM中,q是个十分方便的Ҏ?/p>

此外Q值得一提的是,Nexusq支持基于classname的搜索,你只需点击搜烦面右上角的下拉框,选择“Classname Search”,然后输入cd卛_Q这里我不再赘述?/p>

 

配置Maven使用Nexus

默认情况下,Maven依赖于中央仓库,q是Z能让Maven开即用,但仅仅这么做明显是错误的Q这会造成大量的时间及带宽的浪贏V既然文章的前面已经介绍了如何安装和配置NexusQ现在我们就要配|Maven来用本地的NexusQ以节省旉和带宽资源?/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这里我们编写了一个profileQƈd了一 个profileq?lt;activeProfile>元素自动这个profileȀzR这里的local-nexus仓库指向了刚才我? 配置的Nexus中“Public Repositories”仓库组Q也是_所有该仓库l包含的仓库都能供我们用。此外,我们通过<releases> ?lt;snapshots>元素ȀzMMaven对于仓库所有类型构件下载的支持Q当然你也可以调节该配置Q比如说止Maven从Nexus 下蝲snapshot构g?/p>

使用该配|,Maven׃从你的Nexus服务器下载构件了Q速度和从Central下蝲可不是一个数量的?/p>

 

部v构g至Nexus

Nexus提供了两U方式来部v构gQ你可以从UI直接上传Q也可以配置Maven部v构g?/p>

 

通过Nexus UI部v

有时候有个jar文g你无法从公共Maven仓库扑ֈQ但是你能从其它得到q个jar文gQ甚xPOMQ,那么你完全可以将q个文g部v到Nexus中,使其成ؓ标准程的一部分。步骤如下:

点击左边D栏的"Repository"Q在双的仓库列表中选择一个仓库,如?rd Party”,然后会看到页面下Ҏ四个tabQ选择最后一个“Upload”,你会看到构g上传界面。选择你要上传的构Ӟq指定POMQ(或者手工编 写GAV{信息)Q最后点击UploadQ该构gq接被部vCNexus?3rd Party"仓库中。如图:


通过Maven部v

更常见的用例是:团队在开发一个项目的各个模块Qؓ了让自己开发的模块能够快速让其他Z用,你会惌snapshot版本的构仉|到Maven仓库中,其他人只需要在POMd一个对于你开发模块的依赖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׃从NexusL依赖q下载?/p>

 

ȝ

本文介绍强大的仓库管理器——NexusQ包括如何下载安装NexusQ配|Nexus代理中央仓库Q管理Nexus的代理仓库,本地仓库Q以及仓 库组。ƈ帮助你了解如何通过Nexus搜烦构g。最后,如何在Maven中配|Nexus仓库Q以及如何部|构件到Nexus仓库中。这些都是Nexus 中最基本也是最常用的功能。随着使用的深入,你会发现Nexusq有很多其它的特性,如用L理,角色权限理{等?/p>

Nexus的OSS版本是完全开源的Q如果你有兴,你可以学习其源码Q甚臌己实C个REST客户端?/p>

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



C物 2009-06-04 16:32 发表评论
]]>
nexus settings 讄http://www.aygfsteel.com/libin2722/articles/277914.htmlC物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>



C物 2009-05-25 23:09 发表评论
]]>
初学maven(4)-使用maven ant task实现非标准打?http://www.aygfsteel.com/libin2722/articles/250010.htmlC物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阅读全文

C物 2009-01-05 23:27 发表评论
]]>
初学maven(3)-使用nexus替代artifactory作ؓmavenU服 http://www.aygfsteel.com/libin2722/articles/250009.htmlC物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作ؓ自己的mavenU服。恩Q惭愧,颇有点喜新厌旧的味道Qartifactory才装上来没有几天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 serviceQ如果需要设|nexus为开动启动就可以安装为windows service然后讄启动方式动?br />         Nexus.bat是直接在命o行中启动NexusQ如果不惛_装Nexus为windows serviceQ可以用q个文g来手工控制Nexus的启动退出?br />        
       
3. 配置nexus

    首先dQ默认地址http://localhost:8081/nexus/Q默认用户名密码为admin/admin123.
   
    最重要的一件事情就是开启远E烦引下载,索引q个功能实在是太好用了?br />    
    nexus默认是关闭远E烦引下载功能的Q主要是担心会造成Ҏ务器的巨大负担,需要我们手工开启?br />    
    开启的方式Q?br />         点击Administration菜单下面的RepositoriesQ将q三个仓库Apache SnapshotsQCodehaus SnapshotsQMaven Central的Download Remote Indexes修改为true。然后在q三个仓库上分别右键Q选择Re-indexQ这样Nexus׃M载远E的索引文g?br />        
4. 配置maven
    要让maven使用nexus作ؓU服Q需要做一些设|,使用和原来设|artifactory怼的方法。修改~/.m2/settings.xml.
   
    增加nexus的profileQ?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用artifactoryU服也可以用Artifact的烦引功能,但是׃不知道怎么讄q程仓库的indexQ我只会讄
    当前artifactoryU服已有的Artifact的烦引,对于q没有导入到artifactoryU服的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) dnexus的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文gQ右?-> Add DependencyQ?然后填入一个关键词Q比如我填入minaQ马上填出和mina相关的一?br />         选择Q我扑ֈapache minaQ双LC个版本。会自动在pom.xml文g中增加以下内容:

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

        然后Maven自动下蝲jar包,再将jar包加入项目的build pathQ全E自动化处理Q真是爽啊?br />
7. 为nexus增加新的proxy  repository
        Ҏ很简单,administration -> Repositories -> add -> proxyQ填写后保存卛_。但是要注意Qnexus不会自动新加入的repositoryd到group中,而我们一般喜Ƣ直接用默认的"public repository" groupQ?比如前面我在maven的profile中就只设|了q一个URLQ?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个Ua是因为它有sun的jmxri/jmxtoolsq些ArtifactQ强烈鄙视sunQ自q官方repository居然没有?br /> 8. ȝ
    很明显,nexus无论是在界面Q功能,操作上,都比artifactory强大的多?br />     因此推荐大家使用nexus替代artifactory作ؓmavenU服?br />    
updates:
1.  2008.11.28 
׃公司升操作pȝQ告别老旧不堪的windows2000升到vistaQ因此重新安装了nexus. 新版本的nexusg增加了不小的功能比如对remote index的支持,具体没有qQ不q能不断更新实在是很令hƣ慰。以后就打算用nexus了?br />    

C物 2009-01-05 23:26 发表评论
]]>
初学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一下mavenQ中途因为工作忙搁置了一D|_重新再看时发现安装过E基本忘光。只好找资料看然后再来一遍,mavenQartifactory和m2eclipse安装使用的全q程记录整理出来Q备忘。另外我惌些资料应该比较适合maven的入门新手,照做一遍就可以完成三个东西的安装设|,然后可以学习和使用了?br /> <br /> 一. 安装maven<br />     安装官方标准的安装方式(http://maven.apache.org/download.html#InstallationQ安装,步骤如下<br />     1. 下蝲解压~apache-maven-2.0.9-bin.zip到安装目?br />     2. 增加环境变量M2_HOMEQ指向maven的安装目录,注意不能?\"l尾<br />     3. 增加Q可选)maven环境变量MAVEN_OPTSQgؓ"-Xms256m -Xmx512m"Q后l可以增加其?br />     4. 修改PathQ增?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.xmlQ找?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设|ؓIZ行?br />         <br /> <br /> ? 安装Artifactory<br /> <br />     按照官方文档Qhttp://wiki.jfrog.org/confluence/display/RTF/InstallingQ?标准安装Q简单说是三步Q?br />     1. 下蝲q解压羃最新版本的artifactory-1.3.0-beta-2.zip<br />     2. 双击bin目录下的artifactory.bat文gQ启动artifactory?br />         注意必须保证JAVA_HOME正确讄Qƈ且jdk的版本是5.0或更高?br />     3. 用浏览器打开http://localhost:8081/artifactoryQ用admin/passwordd<br />     <br />     配置ArtifactoryQ在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 />     更新后会自动变成三个siteQ一个不可用Q另外两个版本同步,有新旧两个版本可以选择Q当焉最新的一?00807**的版本?br />     <br />     安装好后Q就可以使用m2eclipse插g为项目增加pom.xml文g了。有了m2eclipse的图形界面得操作显得很单,Ҏ理解和掌握?br /> <br /> update 20081128: <br />     升操作pȝ到vistaQjdk?.7Qeclipse?.4后,安装新版本的mavenQ一切正常,但是启动时会弹出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指向jdkQ然后将默认的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中,上面三个讄可以覆盖Qpom.xml中设|是最直接了当的。但是考虑到repositories信息是完全有<br />         可能变化的,其是用私服,万一公司的私服换个地址N所有项目的pom.xml文g都设|一遍? q有pom.xml文g是用<br />         来保存当前项目的多种依赖信息的,repositories信息应该和当前具体项目没有直接联pR因此不应该攑ֈpom.xml文g中?br />         其在pom.xml文g需要保存到cvsQsubversion{版本控制系l中Q可变的repositories信息更不合适保存了?br />         因此需要将repositories信息讄?MAVEN_HOME%/conf/settings.xml或~/.m2/settings.xmlQ这样就_灉|了?br />         <br />         实践中发C个比较奇怪的地方Q我使用的是maven2.0.9版本Q修?MAVEN_HOME%/conf/settings.xml讄居然无效Q只?br />         copy一份到~/.m2/settings.xmlQ这个文仉认是不会自动建立的)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 />         当然要先讄好对应的profileQ对于简单场景,一个就_了,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/repositoryQ个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 />         使用mavenQ很直接׃遇到q个问题Q到底这个东西的groupId和artifactId是什么呢QM能瞎猜吧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[初学mavenQ遇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#InstallationQ安装完毕,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.xmlQ找?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设|ؓIZ行?br /> <br /> ? artifactoryU服安装问题<br />     对于单机来说Qmaven从远E仓库取jar包等资源是完全合理的。但是如果一个team甚至一个公司,每个人的maven都从q程仓库取,那么花在文g下蝲上的旉太多了Q而且完全没有必要。因此设|一个开发团队共享的Maven2的私服就必不可少了?br />     Maven2的私服,当然首选artifactory?br />     跑到artifactory的官|,down下来最新的1.30-beta1Q安装非常简单,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上:dartifactory的控制台后,点Virtual Repositories --?repo 后直接报错,面抛ArrayIndexOutOfBoundsExceptionQ看url是http://localhost:8081/artifactory/repo/Q这个不是上面配置的地址吗?都抛异常了,让maven怎么取文Ӟ扑ֈ问题了,虽然莫名其妙Q试着删除后重新安装还是这个错误。晕倒,不清楚哪里出的问题,更不知该怎么攏V看看版本是beta1Q而且下蝲数量只有几十Q想惛_能是新版本的bug?br />     换成1.2.5finalQ一切都正常了?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中impotq来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: 宋体">cd地址.</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>