Maven常用指令和常见错误(Linux)

1. Linux新建项目

mvn archetype:generate,然后在命令行的提示下输入你要建的项目的 groupId,artifactId,以及version等

2. 常用指令

  • mvn install(安装): 把包安装到本地仓库,使该包可以作为其他本地项目的依赖。
  • mvn package(打包): 源码编译之后,使用合适的格式(例如JAR格式)对编译后的源码进行打包。
  • mvn clean: 清除项目
  • mvn compile(编译): 编译项目源码
  • mvn test-compile : 编译项目测试源码
  • mvn test(测试): 使用合适的单元测试框架测试编译后的源码。
  • java -jar *.jar
  • java -cp *.jar *(class)

install与package的区别:项目A依赖项目B,B项目如果只是执行clean、package的话,只是打包到B项目的target下面,再编译项目A的时候会报编译错误,原因是项目B没有执行install。所以package只是打包到target下,install是打包安装到本地maven仓库。对于没有依赖关系的包,二者没有太大区别。

参考:maven的package和install区别

3. 实战示例

mvn archetype:generate

下图所示节点会停下, 要求选择项目的类型(Choose archetype) ,直接回车( 默认是7: internal -> org.apache.maven.archetypes:maven-archetype-quickstart (An archetype which contains a sample Maven project.) )

在这里插入图片描述

groupId: 公司名称

artifactId: 项目名称

version:版本

package:包名

在这里插入图片描述

新建项目完成,可以发现artifactId即为项目文件夹名称,package为Java下的文件夹名称。

在这里插入图片描述

main/java/com/test/App.java 为主类,内容如下:

在这里插入图片描述

mvn compile 编译当前的项目,可以发现多了target这部分

在这里插入图片描述

mvn install 编译成jar包,可以发现target下多了一个jar包

在这里插入图片描述

java -jar target/com.test-1.jar,执行jar包,报无主类错误

在这里插入图片描述

java -cp target/com.test-1.jar com.test.App,直接运行对应类,运行成功。

在这里插入图片描述

4. 错误总结

4.1 加载不到主类

分析:缺乏启动类

解决方法:在pom.xml中添加如下内容

<build>
    <plugins>
        <!--添加maven插件-->
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>

            <!--添加自己的启动类路径!-->
            <configuration>
                <mainClass>com.test.App</mainClass>
            </configuration>

            <executions>
                <execution>
                    <goals>
                        <!--可以把依赖的包都打包到生成的Jar包中-->
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

4.2 出现 JNI 错误

jdk和jre版本相同,在连接Neo4j时出现该错误。

在这里插入图片描述

原因:未明

解决方法:同加载不到主类

猜你喜欢

转载自blog.csdn.net/MaoziYa/article/details/114270638