Maven
Maven

maven创建工程目录不全问题
原因是创建maven工程时没有勾选create a simple project(skip archetype selection)项,而是只勾选了Use default Workspace location然后选择下一步的方式创建,这种方式创建的maven会缺少一些目录。解决办法是勾选create a simple project(skip archetype selection)项,然后直接在表单中输入Group Id和Artifact Id即可。
配置阿里云镜像
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
添加本地依赖包
添加本地依赖包:
<dependency>
<groupId>com.jacob</groupId>
<artifactId>jacob</artifactId>
<version>1.19</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/webapp/WEB-INF/lib/jacob.jar</systemPath>
</dependency>
如果不使用添加本地依赖包的方式,打包时就要在pom.xm加入下面的配置【不推荐】
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>${jdk.version}</source>
<target>${jdk.version}</target>
<showWarnings>true</showWarnings>
<encoding>UTF-8</encoding>
<!-- 这里是新添加的 -->
<compilerArguments>
<!-- 对应jar放置在项目中的位置 -->
<extdirs>lib</extdirs>
</compilerArguments>
</configuration>
</plugin>
pom.xml
在dependency.version中引用version版本
<packaging>war</packaging>
// 1.定义properties属性
<!-- 项目属性 -->
<properties>
<!-- main version setting -->
<servlet.version>3.1.0</servlet.version>
<struts2.version>2.3.4</struts2.version>
</properties>
// 在denpendance中引用
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>${servlet.version}</version>
</dependency>
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>${struts2.version}</version>
</dependency>
</dependencies>
使用jetty
<build>
<plugins>
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>9.4.7.v20170914</version>
<configuration>
<webApp>
<contextPath>/${build.finalName}</contextPath>
</webApp>
<stopKey>CTRL+C</stopKey>
<stopPort>8999</stopPort>
<scanIntervalSeconds>10</scanIntervalSeconds>
<scanTargets>
<scanTarget>src/main/webapp/WEB-INF/web.xml</scanTarget>
</scanTargets>
</configuration>
</plugin>
</plugins>
</build>
如果使用的是eclipse集成的话:在maven bulid输入:
jetty run
不是的话,需要输入:
mvn jetty run
访问地址是打过包的地址:

即:http://localhost:8080/Struts2Base-0.0.1-SNAPSHOT
maven打包
打包
项目右键 -> Run as -> Maven clean 等待执行成功后 -> 项目右键+Run as + Run Configurations 在Goals输入框中输入:
package
然后 run即可。
出现的问题
1、打包报错:程序包javax.validation不存在
解决方法:清空mvn仓库下的javax包,然后重新使用maven下载
2、打包报错:程序包com.jacob.activeX不存在
解决方法:不在使用在jar包上右击add to build path方式,这种方式打包是不会把该程序包打进去,所以打包时会报错。解决方式就是使用添加本地依赖包的形式将本地的jacob加入maven中,详见【@ link 添加本地依赖包一章】
3、打包报错:在打包测试程序时报错:找不到符号
解决方法:打包时忽略测试程序包:Run Configuration中的Goals中填写:
package -Dmaven.test.skip=true
然后,run即可。
4、eclipse默认使用的时jre1.6版本,如果将jre版本更改为1.8也会导致打包出错
常见报错
error:web.xml is missing and <failOnMissingWebXml> is set to true
resolve:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
</plugins>
</build>
error:Java compiler level does not match the version of the installed Java project facet.
error:Dynamic Web Module 3.1 requires Java 1.7 or newer.
resolve:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<!-- 如果是1.8,修改为1.8 -->
<target>1.8</target>
<!-- 如果是1.8,修改为1.8 -->
</configuration>
</plugin>
maven创建工程目录不全问题
原因是创建maven工程时没有勾选create a simple project(skip archetype selection)项,而是只勾选了Use default Workspace location然后选择下一步的方式创建,这种方式创建的maven会缺少一些目录。解决办法是勾选create a simple project(skip archetype selection)项,然后直接在表单中输入Group Id和Artifact Id即可。
配置阿里云镜像
<mirror> <id>nexus-aliyun</id> <mirrorOf>*</mirrorOf> <name>Nexus aliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public</url> </mirror>
添加本地依赖包
添加本地依赖包:
<dependency> <groupId>com.jacob</groupId> <artifactId>jacob</artifactId> <version>1.19</version> <scope>system</scope> <systemPath>${project.basedir}/src/main/webapp/WEB-INF/lib/jacob.jar</systemPath> </dependency>
如果不使用添加本地依赖包的方式,打包时就要在pom.xm加入下面的配置【不推荐】
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.5.1</version> <configuration> <source>${jdk.version}</source> <target>${jdk.version}</target> <showWarnings>true</showWarnings> <encoding>UTF-8</encoding> <!-- 这里是新添加的 --> <compilerArguments> <!-- 对应jar放置在项目中的位置 --> <extdirs>lib</extdirs> </compilerArguments> </configuration> </plugin>


浙公网安备 33010602011771号