有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

基于maven构建的java生成类路径字符串

我的pom中有依赖项。如下所示的xml:

<dependency>3.jar</dependency>
<dependency>1.jar</dependency>
<dependency>4.jar</dependency>
<dependency>2.jar</dependency>

我有一个maven项目,部署后将有如下目录结构:

myproj/
|_lib/
  |_1.jar
  |_2.jar
  |_3.jar
  |_4.jar
|_start.sh

开始。sh加载lib文件夹中的所有jar,如下所示:

CLASSPATH=./lib/*

问题是,当我回显类路径时,它按字母顺序加载jar:

CLASSPATH=/lib/1.jar;/lib/2.jar;/lib/3.jar;/lib/4.jar;

我希望它是maven使用的:

CLASSPATH=/lib/3.jar;/lib/1.jar;/lib/4.jar;/lib/2.jar;

我能行

mvn dependency:build-classpath -Dmdep.outputFile=cp.txt

但它会打印出本地存储库中的jar:

CLASSPATH=C:\.m2\repository\com\project\3.jar;\.m2\repository\com\project\1.jar;...

我想我可以修改生成的输出,但我正在寻找更好的解决方案

有什么想法吗

谢谢


共 (1) 个答案

  1. # 1 楼答案

    可以使用prefix参数来dependency:build。从the docs

    prefix

    The prefix to prepend on each dependent artifact. If undefined, the paths refer to the actual files store in the local repository (the stripVersion parameter does nothing then).

    User property is: mdep.prefix.

    例如:

    mvn dependency:build-classpath -Dmdep.outputFile=cp.txt -Dmdep.prefix=/lib