首次运行maven项目的遇坑过程

对于maven是小白,刚开始同事给了一个java文件,需要运行起来

1. 尝试一(因为一个java文件开始想就不用android studio了)

       看了之后以为安装jdk运行一下就ok了,但是文件中依赖了很多其他类,普通的依赖还可以搞定但是有一个是geotools包(gis方面计算的吧不太清楚),一无所知的情况下去官网下载了bin包,打开一看全是jar,应该就是依赖了,再就是下载了其他依赖所需的jar包,然后就开始编译了(此处maven官网)

         此处Maven仓库一直大有用处:maven仓库地址

         还发现一个网站不知道是啥但有用:仓库下载

        1.编译问题

                  1)开始是UTF-8编码问题,这个命令行增加编码格式;

                  2)然后就是缺少包,类的各种问题,就是下载补上喽;

                  3)类中引用了其他类,我创建好放到同一目录下编译,一直提示类找不到;后来没有办法把它弄成内部类可以了;

                   编译命令:

javac -Djava.ext.dirs=E:\java\libs -encoding UTF-8 GpsSort.java

        2.运行问题

                   1)错误: 找不到或无法加载主类 A : 类中有原来的包名,删除包名再运行就可以了

                   2)log4j-over-slf4j.jar和slf4j-log4j12-1.7.30.jar冲突会造成内存溢出问题,研究好久发现,这二者不可以共存,所以必须删除一个,引用了Logger类打印可以删除了log4j-over-slf4j.jar

                   3)再次编译找不其他的类,一堆堆,在maven仓库找了半天没找到,一个字累

                          超找说geotools包离线加载有问题,必须要在线加载,所以此方法放弃

报错信息

                   4)运行命令

java -Djava.ext.dirs=E:\java\libs GpsSort

2.尝试二

       开始尝试Maven加载,geotools官网 Quickstart 开始按照指南引入依赖

       1.idea工具早就安装了,但是如何使用我却空白,对于Maven项目也是空白白

       2.硬着头皮开始了,pom文件是最最困惑我的,依赖-库-build 

src
  -main
      –java java源代码文件
      –resources 资源库,会自动复制到classes目录里
      –filters 资源过滤文件
      –webapp web应用的目录。WEB-INF、css、js等
  –test
      –java 单元测试java源代码文件
      –resources 测试需要用的资源库
      –filters 测试资源过滤库
  –assembly 组件的描述配置(如何打包)
  –it 集成测试(主要用于插件)
  –site Site(一些文档)
target
pom.xml  maven的pom文件
LICENSE.txt Project’s license
README.txt Project’s readme

         3.按照geotools官网增加了依赖和库,但是依赖一直加载不下来,整了一下午无果

         4.回家路上搜了搜,maven项目还需要安装maven,天爷我只安装了idea万事大吉了,心里嘀咕应该是这个原因

         5.第二天,按照流程安装了maven,配置了环境变量;maven安装流程,很详细注意settiing文件设置本地仓库地址斜杠\,我看着上面注释示例还把斜杠反过来,试了一次不正确

         6. idea需要配置maven地址,本地仓库,setting文件(收藏配置是)

             idea配置maven地址

           此处遇到一个奇怪的事情,local reposotory 和 setting地址设置完成后,我重新invalidate cache又变回了用户名下面的.m2的地址了,但是也能用,很奇怪,不太懂

        7.但是网络库还是下载不下来,怀疑geotools不支持国内网络,所以需要找国内的地址

            遇到了geotools依赖问题的博客,按照这个把官网给的依赖改成了这个依赖,然后在setting文件(D:\Program Files\Apache\maven\conf\settings.xml)中设置了mirro标签为阿里镜像,尝试了多次下载后,geotools包完全下载了下来,解决了我的问题(但此处我的idea-setting-maven中local reposotory设置的是默认的.m2中的setting,我去目录下查看并没有这个文件,所以此处有疑问)但总归是解决了

            

 <repositories>

        <repository>
            <id>osgeo</id>
            <name>OSGeo Release Repository</name>
            <url>https://repo.osgeo.org/repository/release/</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
            <releases>
                <enabled>true</enabled>
            </releases>
        </repository>
        <repository>
            <id>osgeo-snapshot</id>
            <name>OSGeo Snapshot Repository</name>
            <url>https://repo.osgeo.org/repository/snapshot/</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
            <releases>
                <enabled>false</enabled>
            </releases>
        </repository>

        <!--        <repository>-->
        <!--            <id>maven2-repository.dev.java.net</id>-->
        <!--            <name>Java.net repository</name>-->
        <!--            <url>http://download.java.net/maven/2</url>-->
        <!--        </repository>-->
        <!--        <repository>-->
        <!--            <id>osgeo</id>-->
        <!--            <name>Open Source Geospatial Foundation Repository</name>-->
        <!--            <url>http://download.osgeo.org/webdav/geotools/</url>-->
        <!--        </repository>-->
        <!--        <repository>-->
        <!--            <snapshots>-->
        <!--                <enabled>false</enabled>-->
        <!--            </snapshots>-->
        <!--            <id>boundless</id>-->
        <!--            <name>Boundless Maven Repository</name>-->
        <!--            <url>http://repo.boundlessgeo.com/main</url>-->
        <!--        </repository>-->

    </repositories>
 <mirror>
    <id>nexus-aliyun</id>
    <mirrorOf>central</mirrorOf>
    <name>Nexus aliyun</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>

             8. 喜出望外,高兴过早,install后还是有问题

 -source 1.5 中不支持 diamond 运算符

              1) 设置中查看jdk设置版本

                    检查project structure中的 project:  1. project sdk:  1.8           2.project language level : 8-lambdas 

                    检查project structure中的 modules:  language level:8

                    检查setting:java compiler : project bytecode version: 8

  pom增加文件


    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
        </plugins>
    </build>

            9. 最后运行起来了,太不容易了

                  操作技巧:项目根目录右击-- maven -- reimport 导入包

                                    项目idea右侧菜单栏,maven - 项目名-- lifecycle --  clean(清除缓存)

                                    项目idea右侧菜单栏,maven - 项目名-- lifecycle --  install(安装)

3. 注意pom文件至关重要

        pom文件详解

       

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值