Присоединение основного артефакта, если он создан с помощью maven-assembly-plugin - PullRequest
0 голосов
/ 05 сентября 2018

У меня проблемы со сборкой моего проекта Maven. Это требует сборки двух jar-файлов - один из них собран по умолчанию maven-jar-plugin , который просто содержит папки с соответствующими классами моего Java-кода, а другой - пользовательский, созданный maven-assembly- плагин в фаза пакета - это исполняемый файл jar со всеми добавленными файлами jar зависимостей.

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-assembly- 
plugin:2.2-beta-5:single (executable-jar-generation) on project enhanced- 
search: Execution executable-jar-generation of goal 
org.apache.maven.plugins:maven-assembly-plugin:2.2-beta-5:single failed: For 
artifact {com.fmr.es:enhanced-search:1.0:jar}: An attached artifact must 
have a different ID than its corresponding main artifact. -> [Help 1]

Я следил за Вручную присоединить основной артефакт, если он собран maven-assembly-plugin в качестве ссылки, поскольку проблема более или менее та же.

Как сказано в ответе, я добавляю код ant-plugin, который перезаписывает мой основной jar-файл исполняемым, для установки в хранилище с фазой package .

Но прежде чем maven даже достигнет этого плагина, появляется ошибка выше. Я не могу сделать наоборот, так как должен быть исполняемый файл jar, созданный в первую очередь, чтобы перезаписать основной.

Больше отзывов очень ценятся.

Ниже приведен плагин сборки, который создает мой исполняемый файл jar вместе с assembly.xml

<plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <executions>
        <execution>
            <phase>package</phase>
            <id>executable-jar-generation</id>
            <goals>
                <goal>single</goal>
            </goals>
            <configuration>
                <finalName>executable-enhanced-search-1.0</finalName>
                <descriptors>
                    <descriptor>assembly-jar.xml</descriptor>
                </descriptors>
            </configuration>
        </execution>
    </executions>
</plugin>

<assembly xmlns="http://maven.apache.org/plugins/maven-assembly- 
plugin/assembly/1.1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema- 
instance" xsi:schemaLocation="http://maven.apache.org/plugins/maven 
assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly- 
1.1.2.xsd">
    <baseDirectory>/</baseDirectory>
    <formats>
        <format>jar</format>
    </formats>
    <fileSets>
        <fileSet>
            <directory>../../target/classes</directory>
            <includes>
                <include>**/*</include>
            </includes>
           <outputDirectory>/</outputDirectory>
        </fileSet>
    </fileSets>
    <dependencySets>
        <dependencySet>
            <outputDirectory>/</outputDirectory>
            <unpack>false</unpack>
        </dependencySet>
    </dependencySets>
</assembly>

Ниже приведена специальная задача муравья, как указано в ссылке, которую я разместил выше.

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-antrun-plugin</artifactId>
    <version>1.6</version>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>run</goal>
            </goals>
            <configuration>
                <tasks>
                    <copy file="../../target/executable-enhanced-search- 
                         1.0.jar" tofile="../../target/enhanced-search- 
                         1.0.jar" overwrite="true" />
                </tasks>
            </configuration>
        </execution>
    </executions>
</plugin>
...