Java 基于maven构建生成类路径字符串
我在pom.xml中有如下依赖项: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
<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是专有的,我别无选择,只能订购类路径。