maven编译war
1. maven如何打WAR包,看到target目录下面会生成JAR包,如何改成WAR
war插件有个标签<packagingExcludes>意思是打包时不包含哪些文件,写具体的文件或目录,多个用逗号隔开。
例子:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.2</version>
<configuration>
<webappDirectory>WebContent</webappDirectory>
<!-- 必须指定,否则默认会变成在target/war/work 导致被打包进war文件,指定后为target/work -->
<workDirectory>${project.build.directory}/work</workDirectory>
<useCache>false</useCache>
<packagingExcludes>WEB-INF/classes/**/*.*,WEB-INF/lib/**/*</packagingExcludes>
<archive>
<addMavenDescriptor>true</addMavenDescriptor>
</archive>
</configuration>
</plugin>
2. 怎么将maven项目打包成war包
用命令行完成打包操作,首先需要在开始-运行-cmd,打开cmd命令窗口,使用命令打包,命令为“mvn clean package”,此时会将当前工程执行打包操作,打包成功后会生成*.war形式的war包。
3. idea maven怎么打war包
右键项目,选择Run As,再选择Maven build...,这时会弹出个新界面,在Goals里输入clean package,然后点击Run就行了,打包好的项目放在target文件夹下面。
clean package是maven的一个命令,意思是测试并打包,它还有很多命令,这里就不多说了。
4. maven打war包是什么内容
说我伸手党也罢,我现是想实现用bash来编译war包,不想要通过第三方来实现(第三方jekin什么的文档都是英文的,我看着也麻烦。)所以需要直接maven命令来编译java源代码。然后来实现自动化部署。(PS:第三方的自动部署的程序没有文档很难用。所以,我想自己写脚本实现自动获取svn代码,并自动部署。)
5. Maven 是怎样创建War 包
转载 最近在网上看到一篇介绍maven基础知识的文章,觉得对初学Maven的朋友一定有帮助。水平有限,翻译的不好,请大家见谅。
介绍
在处理WEB应用的时候,最终使用的工程文件是以War包的形式交付。Maven编译系统可以轻松的创建War包。接下来就让我们看看Maven是如何把一个源文件的工程转换成War包的。
Maven 版本 Apache Maven 3.0.4
工程实例
让我们来看看这个非常典型的Maven化的WEB工程
对应的POM.xml如下:
我们用此命令War包
1 mvn package
War生成在根目录下
1 /target/myprojectname.war
如下图,概况Maven生成War包过程
Maven 默认配置
我们都知道Maven可以很容易的把源文件工程创建为War包,但是POM文件中什么也没有设置。这是怎么回事啊?实际上Maven有自己默认的设置。这称之为 “convention over configuration”,Maven在配置中提供默认值。
第一,因为有一些Maven插件本身就与Maven 的生命周期绑定在一起。例如,在编译阶段使用
compiler:compile 作为默认命令。这就意味着当执行到编译阶段compiler plugin 被调用执行。如果选择生成WAR,那么 war:war 会与这个阶段绑定。
第二,当没有明确设置参数的时候,插件都会有自己默认值。例如 compiler:compile 目标有个参数是 compilerId。当默认值是 javac就意味着JDK 会被使用。当需要生成其他形式时可以重写此配置。
第三,一些设置包含在 Super POM,此文件是POM文件默认继承的。从Mavne3 起 Super POM 被放在
1 maven_dir/lib/maven-model-builder-3.0.3.jar:org/apache/maven/model/pom-4.0.0.xml
在这里我们可以发现很多默认的配置信息
Maven 生命周期
在我们的工程中,当执行 mvn package 命令,maven会执行它整个生命周期中的六个阶段
1 process-resources, compile, process-test-resources, test-compile, test and package
每个阶段会包含一个或多个目标。Maven 插件提供目标:一个插件可以有一个或多个目标。例如
Compiler 插件有两个目标:compiler:compile 和 compiler:testCompile
我们可以使用 mvn help:describe -Dcmd=phasename 命令列出如下内容
下面让我们看看每个目标
1.resources:resources
此目标用来将资源文件夹下的内容拷贝到输出目录
2.compiler:compile
此目标编译源项目工程
3.resources:testResources
此目标拷贝测试资源到测试输出目录
4.compiler:testCompile
此目标编译测试项目
5.surefire:test
此目标执行工程的单元测试,编译的测试类放在 /target/test-classes
6.war:war
此目录创建War包。它会把所有需要的文件放在
1 /target/myprojectname/
而后将他们打包生成 **.war。其中一个步骤是将 /src/main/webapp/ 拷贝到输出目录。
War插件另外一个重要步骤是拷贝Class文件到到 WEB-INF/classes目录和项目所依赖的jar包到 WEB-INF/lib目录。
默认情况下,插件还包含两个Maven描述文件:
META-INF/maven/${groupId}/${artifactId}/pom.xml
pom.properties 文件,META-INF/maven/${groupId}/${artifactId}/pom.properties
1 #Generated by Maven
2 #Sat May 12 00:50:42 CEST 2012
3 version=1.0-SNAPSHOT
4 groupId=mygroup.com
5 artifactId=myprojectname
最终的War包放在/target/目录下。
项目依赖
pom.xml文件会有一个默认的(JUnit)依赖。我们可以加另外一个常用的Jar log4j。
1
2 log4j
3 log4j
4 1.2.16
5
当没有设置依赖范围 ( scope),默认为 compile scope。这就意味着此依赖在编译、测试、运行阶段都可以得到。
只要是运行中会用到的jar包,都会拷贝到 /WEB-INF/lib目录
转载
6. maven编译工程war包、各位大大有谁遇到类似问题
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<mainClass>com.abc.ABCTest</mainClass> -->入口类名
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id></id>
<phase>install</phase>
<goals>
<goal>-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/lib</outputDirectory> -->拷贝所以依赖存放位置
</configuration>
</execution>
</executions>
</plugin>
</plugins>
7. maven项目打包成war包,放到tomcat下运行报错
ss-0.01-snapshot.jar要看这个是什么jar包,里面的struts.xml配置错误。
8. maven打war包,然后在tomcat上运行
1、Maven打war包命令:(该命令到POM文件目录执行)
mvnpackage-DskipTests (该命令会跨过maven的测试直接打包)
2、TOMCAT的启动问题:
异常:java.lang.incompatibleclasschangeerror: Implementing class
问题解决1:该问题可能为版本不兼容的问题,需要在POM.XML文件中加入plugin的配置:
<!--compiler插件,设定JDK版本-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>${jdk.version}</source>
<target>${jdk.version}</target>
<showWarnings>true</showWarnings>
</configuration>
</plugin>
9. maven项目如何生成war文件
配置 你的pom.xml文件,在你的overview视窗里 配置 packaging为 war 然后
然后点击 pom.xml右键,run as 选择 install 或是 package
如果项目没问题,配置没问题
就会在项目的target 的目录里生成 war文件,