Требование: сгенерировать один файл jar с зависимостями и присвоить имя резца файлу jar.Невозможно сгенерировать один файл jar с зависимостями в maven
Моя проблема в том, что мне нужно создать только один файл jar с зависимостями, мне не нужен файл jar по умолчанию. Когда я «МВН чистой установки» я получаю результат с двумя баночке файлами имен: FPMWebDocumentation-0.0.1.jar, FPMWebDocu.jar
Я не хочу, чтобы FPMWebDocumentation-0.0.1. jar файл, который будет создан, мне нужно только FPMWebDocu.jar будет сгенерировано. Если я удалю версию groupId, artifactId за пределами узла сборки, это приведет к ошибке «groupId», отсутствующей «artifactId» и т. Д. Теперь, если я удаляю версию groupId & из текущего местоположения и помещаю внутри узла плагина, он по-прежнему дает такую же пропущенную ошибку, как указано выше.
Ниже мой pom.xml:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.fraunhofer.latexDocumentation</groupId>
<artifactId>FPMWebDocumentation</artifactId>
<version>0.0.1</version>
<packaging>jar</packaging>
<name>FPMWebDocumentation</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<id>jar-with-dependencies</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<archive>
<manifest>
<mainClass>com.fraunhofer.latexDocumentation.MainClass</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<finalName>FPMWebDocu</finalName>
<appendAssemblyId>false</appendAssemblyId>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.8.3</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>18.0</version>
</dependency>
</dependencies>
</project>
Adrian Shum Я не мог ответить на вопрос, я отредактировал его, теперь это должно быть более понятно, спасибо. –
Вы не изменяете: 'FPMWebDocumentation-0.0.1.jar' - это не только созданный« по умолчанию », но и главный артефакт проекта. «FPMWebDocu.jar» - это просто дополнительный JAR, созданный плагином сборки. В чем проблема, связанная с тем, что у вас есть главный артефакт? Расскажите нам о своей реальной проблеме и давайте предложим решение для вас. –
Есть уродливые хаки, такие как http://stackoverflow.com/questions/2188746/what-is-the-best-way-to-avoid-maven-jar, но я не знаю, я вижу, что стоит сделать такой незаметный POM, как это без серьезных причин. –