maven

1.核心插件

1.1 War

    war插件有三种打包方式:
    第一种是war,复制所需文件到target目录,然后压缩war包。
    第二种是war:exploded,复制所需文件到target目录。像Tomcat这种支持以目录部署的项目,每次压缩一次war包太慢了,可采用这种方式。
    第三种是war:inplace,直接在webapp目录中复制所需的文件,如lib库,classes文件等。

 

2.使用模式

   在持续集成时,推荐使用maven脚本来测试、打包和部署项目(详见Maven Plugins)。

   在开发时,推荐的模式是使用m2eclipse插件进行依赖jar管理和pom.xml文件的编辑。(见后)
   而另一模式是不依赖maven,直接执行copy-jar.bat将依赖jar复制到/lib 或 webapp/WEB-INF/lib 目录,并加入到版本控制系统中分发给项目团队。

3. 依赖Jar的常见问题

3.1 Nexus私服

    nexus私服非常易用,已自带Jetty,使用jsw wrapper启动。

    访问http://localhost:8081/nexus/ 可浏览仓库内容,如需管理时,用admin/admin123帐号登录。

    在项目中使用时,pom.xml中设置

 <repositories>
		<repository>
			<id>nexus</id>
			<name>local nexus</name>
			<url>http://localhost:8081/nexus/content/groups/public</url>
		</repository>
	</repositories>

	<pluginRepositories>
		<pluginRepository>
			<id>nexus</id>
			<name>local nexus</name>
			<url>http://localhost:8081/nexus/content/groups/public</url>
		</pluginRepository>
	</pluginRepositories>

Nexus是以文件系统的方式存放jar文件的。文件sonatype-work/nexus/storage中

注意以下几个目录:

  • Central : Maven中央服务器的映像。
  • Release: 项目组劳动成果的jar。
  • Thirdparty 不在Maven中央服务器,需自行部署的第三方类库jar。

Jetty的默认端口是8081,设置PLEXUS_APPLICATION_PORT的系统环境变量可改动。

 如果要增加新的远程仓库,Login 后,在Repository中仿照maven central添加仓库,然后在groups中增加该repo

   

3.2 m2Ecipse插件

  安装0.9.6以上版本,Maven Embedder,Maven Intergration for Eclipse,Maven POM Editor,Maven POM XML Editor,Maven Intergration for WTP 五个模块。

  m2eclipse可以import maven文件在eclipse项目中来创建整个wtp项目,比较方便,而且不会出现这样那样不合拍的奇怪事情。

3.3 不能直接上网,需要设置代理怎么办?

    修改maven的conf/setting.xml文件中的Proxy节点。 

3.4 公司内部的jar或其他官网上没有的jar

    可以把jar安装到公司内部的私服中,也可以把直接执行命令将jar安装到本地仓库。

    mvn install:install-file -Dfile=yourJar -DgroupId=yourGourp -DartifactId=yourArtifact -Dversion=1.0 -Dpackaging=jar -DgeneratePom=true

3.5 denpendency插件

  • mvn dependency:tree 显示jar的依赖树
  • mvn dependency:analyze 扫描你的代码,分析是否有多余的显式定义或最好显式定义的隐式定义。
  • 将test,provided级别jar复制到到/lib,compile,runtime级别jar复制到/webapp/WEB-INF/lib。
call mvn dependency:copy-dependencies -DoutputDirectory=lib -DexcludeScope=runtime
call mvn dependency:copy-dependencies -DoutputDirectory=webapp/WEB-INF/lib  -DincludeScope=runtime

4.目录结构

   默认目录中,java文件,配置文件,Web项目文件分别存放于src/main/java,src/main/resources,src/main/webapp中,可用如下方法将它们的目录层次提高。

4.1 webapp

   修改war插件的定义:

 			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-war-plugin</artifactId>
				<version>2.1-alpha-2</version>
				<configuration>
					<warSourceDirectory>${basedir}/webapp</warSourceDirectory>
				</configuration>
			</plugin>

4.2 java 与 resources

   修改build节点

<build> 		                <sourceDirectory>src</sourceDirectory>
		<testSourceDirectory>test</testSourceDirectory>
		<resources>
			<resource>
				<directory>src</directory>
				<excludes>
					<exclude>**/*.java</exclude>
				</excludes>
			</resource>
		</resources>
		<testResources>
			<testResource>
				<directory>test</directory>
				<excludes>
					<exclude>**/*.java</exclude>
				</excludes>
			</testResource>
		</testResources>	</build> 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值