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>