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

Java 基于maven构建生成类路径字符串,java,maven,sh,classpath,Java,Maven,Sh,Classpath,我在pom.xml中有如下依赖项: <dependency>3.jar</dependency> <dependency>1.jar</dependency> <dependency>4.jar</dependency> <dependency>2.jar</dependency> myproj/ |_lib/ |_1.jar |_2.jar |_3.jar |_4.jar |_st

我在pom.xml中有如下依赖项:

<dependency>3.jar</dependency>
<dependency>1.jar</dependency>
<dependency>4.jar</dependency>
<dependency>2.jar</dependency>
myproj/
|_lib/
  |_1.jar
  |_2.jar
  |_3.jar
  |_4.jar
|_start.sh
CLASSPATH=./lib/*
start.sh加载lib文件夹中的所有jar,如下所示:

<dependency>3.jar</dependency>
<dependency>1.jar</dependency>
<dependency>4.jar</dependency>
<dependency>2.jar</dependency>
myproj/
|_lib/
  |_1.jar
  |_2.jar
  |_3.jar
  |_4.jar
|_start.sh
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;...
我想我可以修改生成的输出,但我正在寻找更好的解决方案

有什么想法吗


谢谢

您可以使用
前缀
参数来
依赖项:构建
。发件人:

前缀

在每个依赖工件上前置的前缀。如果未定义,则路径引用本地存储库中存储的实际文件(stripVersion参数则不执行任何操作)

用户属性为:mdep.prefix

例如:

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

“它按字母顺序装入罐子”-为什么这是个问题?除非在不同的JAR文件中有相同的类(这是不应该的),否则JAR文件在类路径中的顺序并不重要,实际上这就是问题所在——相同的类在不同的JAR中。由于JAR是专有的,我别无选择,只能订购类路径。