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>    

 

posted @ 2020-08-09 11:20  刘呆哗  阅读(306)  评论(0编辑  收藏  举报