??xml version="1.0" encoding="utf-8" standalone="yes"?> 讉Khttp://nexus.sonatype.org/downloads/下蝲Nexus?br />
启动NexusQ就是启动一个web服务器,它的默认地址是localhost:8081。Nexus在一个名为Jetty的servlet容器中运行,
它用一个名为Tanuki Java Service
Wrapper的本地服务包裹器启动。这个服务包裹器可以被配|成以Windows服务或Unix守护U程的Ş式运行Nexus。要启动NexusQ你需
要ؓ你的q_扑ֈ合适的启动脚本。要查看可用q_的列表,查看${NEXUS_HOME}/bin/jsw目录的内宏V可执行文g?nexus安装?
?"nexus-webapp-1.0.0"binjsw"windows-x86-32
下:InstallNexus.bat/UninstallNexus.bat是安?卸蝲nexus为windows
service。Nexus.bat是直接在命o行中启动NexusQ如果不惛_装Nexus为windows
serviceQ可以用q个文g来手工控制Nexus的启动退出?/p>
1.配置nexus 2.理仓库 3. 理l? 4. 配置maven <activeProfiles> 5.部v构g至Nexus q样q没完,q时如果部v会报错,q要在~/.m2/settings.xml中添加如下的服务器登录信息: 部vW三ҎӞ 6.Nexus监听端口 如果你开始大量用Maven
profileQ你会希望将profile从POM中分,使用一个单独的文g如profiles.xml。你可以混合使用定义在pom.xml中和外部
profiles.xml文g中的profile。只需要将profiles元素攑ֈ${basedir}目录下的profiles.xml文g中,然后
照常q行Maven可以。profiles.xml文g的大概内容如下: settings profile可以应用到所有你使用Maven构徏的项目。你可以在两个地方定义settings
profileQ定义在~/.m2/settings.xml中的用户特定settings
profileQ或者定义在${M2_HOME}/conf/settings.xml中的全局settings profile?/p>
该DC构建系l本C库的路径?/p>
如果构徏pȝ需要在ȝ模式下运行,则ؓ
首先dQ默认地址http://localhost:8081/nexus/Q默认用户名密码为admin/admin123.
nexus默认是关闭远E烦引下载功能的。开启的方式Q?
点击Administration菜单下面的RepositoriesQ将q三个仓库Apache SnapshotsQCodehaus SnapshotsQMaven Central?
Download Remote Indexes修改为true。然后在q三个仓库上分别右键Q选择Re-indexQ这样Nexus׃M载远E的索引文g?/p>
以管理员用户登陆然后点击左边D菜单Administration下面的Repositories。Nexus提供了三U不同的仓库?
(1)代理仓库
一个代理仓库是对远E仓库的一个代理。默认情况下QNexus自带了如下配|的代理仓库Q?
Apache Snapshots
q个仓库包含了来自于Apache软g基金会的快照版本?a >http://people.apache.org/repo/m2-snapshot-repository
Codehaus Snapshots
q个仓库包含了来自于Codehaus的快照版本?http://snapshots.repository.codehaus.org/
Central Maven Repository
q是中央Maven仓库Q发布版本)?http://repo1.maven.org/maven2/
(2)宿主仓库
一个宿M库是由Nexus托管的仓库。Maven自带了如下配|的宿主仓库?
3rd Party
q个宿主仓库应该用来存储在公共Maven仓库中找不到的第三方依赖。这U依赖的样例有:你组l用的Q商业的Q私有的cd如Oracle JDBC驱动?
Releases
q个宿主仓库是你l织公布内部发布版本的地斏V?
Snapshots
q个宿主仓库是你l织发布内部快照版本的地斏V?
(3)虚拟仓库
一个虚拟仓库作为Maven 1的适配器存在。Nexus自带了一个central-m1虚拟仓库
l是Nexus一个强大的Ҏ,它允怽在一个单独的URL中组合多个仓库。Nexus自带了两个组Qpublic和public-snapshots?
publicl中l合了三个宿M库:3rd Party, Releases,
和SnapshotsQ还有中央Maven仓库。而public-snapshotsl中l合了Apache Snapshots和Codehaus
Snapshots仓库?/p>
要让maven使用Nexus作ؓ仓库Q要修改~/.m2/settings.xml.
Xml代码
<profiles>
<profile>
<id>nexus</id>
<repositories>
<repository>
<id>nexus</id>
<name>local private nexus</name>
<url>http://localhost:8081/nexus/content/groups/public</url>
</repository>
</repositories>
</profile>
<profile>
<id>nexus-snapshots</id>
<repositories>
<repository>
<id>nexus-snapshots</id>
<name>local private nexus snapshots</name>
<url>http://localhost:8081/nexus/content/groups/public-snapshots</url>
</repository>
</repositories>
</profile>
</profiles>
<activeProfile>nexus</activeProfile>
<activeProfile>nexus-snapshots</activeProfile>
</activeProfiles>
要部|构件至NexusQ在distributionManagement中提供仓库URLQ然后运行mvn
deploy。Maven会通过一个简单的HTTP
PUT项目POM和构件推入至你的Nexus安装。需要配|你目POM中distributionManagement部分的repository?
Xml代码
<distributionManagement>
<repository>
<id>releases</id>
<name>Internal Releases</name>
<url>http://localhost:8081/nexus/content/repositories/releases</url>
</repository>
<snapshotRepository>
<id>Snapshots</id>
<name>Internal Snapshots</name>
<url>http://localhost:8081/nexus/content/repositories/snapshots</url>
</snapshotRepository>
</distributionManagement>
Xml代码
<servers>
<server>
<id>releases</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>Snapshots</id>
<username>admin</username>
<password>admin123</password>
</server>
</servers>
构g可能是私有数据库的JDBC驱动如OracleQ或者你依赖于另一个JARQ它既不开源也无法免费获得。在q样的情况下Q你需要手动拿来这些构件然后发布到你自q仓库中。Nexus提供宿主?third-party"仓库Q就是ؓ了这个目的?br />
使用以下命o发布该文件至NexusQ?
Java代码
mvn
deploy:deploy-file -DgroupId=com.oracle -DartifactId=ojdbc14
-Dversion=10.2.0.3.0 -Dpackaging=jar -Dfile=ojdbc.jar
-Durl=http://localhost:8081/nexus/content/repositories/thirdparty
-DrepositoryId=thirdparty
默认情况下,Nexus监听端口8081。你可以更改q个端口Q通过更改${NEXUS_HOME}/conf/plexus.properties的|为此Q停止NexusQ更Ҏ件中applicationPort的|然后重启Nexus?br />
7.Maven Profiles
Maven中的profile是一l可选的配置Q可以用来设|或者覆盖配|默认倹{有了profileQ你可以ؓ不同的环境定制构建。profile?
以在pom.xml中配|,q给定一个id。然后你可以在q行Maven的时候用的命o行标记告诉Mavenq行特定profile中的目标。以?
pom.xml使用production profile覆盖了默认的Compiler插g讄?
Xml代码
<profiles>
<profile>
<id>production</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<debug>false</debug>
<optimize>true</optimize>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
要用production profile来运行mvn installQ你需要在命o行传?Pproduction参数。要验证production profile覆盖了默认的Compiler插g配置Q可以像q样以开启调试输?-X) 的方式运行Maven?/p>
Xml代码
<profiles>
<profile>
<id>development</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<debug>true</debug>
<optimize>false</optimize>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>production</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<debug>false</debug>
<optimize>true</optimize>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles><settings xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/settings-1.0.0.xsd">
<localRepository</localRepository>
<offline>false</offline>
</settings>
true
Q默认ؓfalse
。当׃|络讄原因或者安全因素,构徏服务器不能连接远E仓库的时候,该配|就十分有用?/p>
]]>
2、激zactivation