V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
SmallDream1995
V2EX  ›  Java

江湖救急,关于 maven 的使用问题

  •  
  •   SmallDream1995 · 2019-08-26 14:18:03 +08:00 · 4426 次点击
    这是一个创建于 1915 天前的主题,其中的信息可能已经有所发展或是发生改变。
    一个多模块项目,子模块引用了一个外部 JAR 包,现在无法在 maven 打包的时候引入,百度了好久还是失败,也来不及去了解原理了。
    <dependency>标签应该正确使用了,build 插件配置如下:
    <build>
    <plugins>
    <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.3</version>
    <configuration>
    <source>1.8</source>
    <target>1.8</target>
    <encoding>UTF-8</encoding>
    <compilerArguments>
    <extdirs>${project.basedir}/lib</extdirs>
    </compilerArguments>
    </configuration>
    </plugin>
    </plugins>
    </build>


    <dependency>
    <groupId>XXXX</groupId>
    <artifactId>XXXXXXX</artifactId>
    <version>X.0.5-SNAPSHOT</version>
    <scope>system</scope>
    <systemPath>${project.basedir}/lib/XXXXXX.jar</systemPath>
    </dependency>

    然而实际运行的时候依然是 classNotFound,囧,没加载到,所以小弟很好奇,不知道是 build 插件写错了,还是在打包的时候只有主项目的 build 才生效呢。。。先谢过各位老哥们!!
    10 条回复    2019-08-26 17:57:36 +08:00
    jsy123392550
        1
    jsy123392550  
       2019-08-26 14:27:41 +08:00
    sonyxperia
        2
    sonyxperia  
       2019-08-26 14:32:22 +08:00
    先 maven install 到仓库中?
    Caballarii
        3
    Caballarii  
       2019-08-26 14:38:25 +08:00
    搭个 nexus 好了
    Aresxue
        4
    Aresxue  
       2019-08-26 15:03:24 +08:00
    看看自己 maven 的版本,语法是否过期了。
    ps: 更严谨的做法是 install 到自己的本地仓库中,不使用 scope 和 systemPath ;
    真实工程中搭个 maven 私服吧,一个工程连自己的私服都没有也太磕碜了。
    jorneyr
        5
    jorneyr  
       2019-08-26 15:08:45 +08:00
    <scope>system</scope>
    system 范围依赖与 provided 类似,但是你必须显式的提供一个对于本地系统中 JAR 文件的路径。
    yzmm
        6
    yzmm  
       2019-08-26 15:16:00 +08:00
    如果你用 systemPath 配置不行的话建议你直接把 jar 添加到本地仓库就可以了。
    mvn install:install-file 这个命令,你百度下吧
    Hurriance
        7
    Hurriance  
       2019-08-26 17:28:06 +08:00
    只是本地跑就安装到 maven 仓库里吧,R 楼上。
    soulzz
        8
    soulzz  
       2019-08-26 17:29:50 +08:00
    一般情况下是父依赖没有 mvn install
    Leiothrix
        9
    Leiothrix  
       2019-08-26 17:38:20 +08:00
    如果被依赖的项目是 spring boot 的可执行 jar 包,会出现这种情况,请将需要添加的公共类抽取到非执行 common 模块中,这是 spring boot 的一个坑。
    fengpan567
        10
    fengpan567  
       2019-08-26 17:57:36 +08:00
    systemPath 不行,可以自己本地 install 到 maven,我也碰到过,很玄学
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2758 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 12:05 · PVG 20:05 · LAX 04:05 · JFK 07:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.