Hi,
ja, das habe ich dann doch auch gemacht - assembly und rename. Nur die resource-Liste konnte ich nicht automatisch (in Maven build) erzeugen.
Ich habe jetzt einen manuellen Weg gefunden, der mich halbwegs glücklich macht
1) mvn dependency:list -DoutputFile=target/dependencies.txt
Ergebnis sieht so aus
org.springframework.boot:spring-boot-starter-web:jar:2.2.2.RELEASE:compile
org.springframework.boot:spring-boot-starter:jar:2.2.2.RELEASE:compile
...
2) GenerateResourceEntriesFromMavenDependencies.java (siehe unten) im IDE ausführen
Ergebnis sieht so aus
<resource name="org.springframework.boot:spring-boot-starter-web" version="2.2.2.RELEASE">lib/spring-boot-starter-web-2.2.2.RELEASE.jar</resource>
<resource name="org.springframework.boot:spring-boot-starter" version="2.2.2.RELEASE">lib/spring-boot-starter-2.2.2.RELEASE.jar</resource>
...
3) Ergebnis in module.xml reinkopieren
---
public class GenerateResourceEntriesFromMavenDependencies
{
public static void main(String[] args)
{
String dependencyFile="C:/gbn/dev/helpdesk/target/dependencies.txt";
if (args.length>0)
{
dependencyFile=args[0];
}
else
{
System.out.println("no arguments given, revert to default");
}
System.out.println("Using dependency file "+dependencyFile);
Path path = Paths.get(dependencyFile);
try (Stream<String> lines = Files.lines(path)) {
lines.forEach(GenerateResourceEntriesFromMavenDependencies::createEntry);
} catch (IOException ex) {
ex.printStackTrace();
}
}
private static void createEntry(String line)
{
try
{
if (line.trim().isEmpty()) return;
String[] components = line.split(":", 10);
String group=components[0].trim();
String artifact=components[1];
String version=components[3];
String type=components[4].trim();
// System.out.println(Arrays.toString(components));
String filename=artifact+"-"+version+".jar";
if (type.equals("compile")|| type.equals("runtime"))
{
System.out.println( "<resource name=\"" +group+":"+artifact+ "\" version=\"" +version
+ "\">lib/" +filename+"</resource>");
}
}
catch (Exception e)
{
System.out.println(line);
e.printStackTrace();
}
}
}