плагин для сборки maven, включая JAR-зависимости и внешние файлы

1

Я пытаюсь использовать плагин Assembly для включения зависимостей, а также

Вот мой плагин сборки

<plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>2.4.1</version>
                <executions>
                    <execution>
                        <id>create-executable-jar</id>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>

                    </execution>
                </executions>

                <configuration>
                            <descriptorRefs>
                                <descriptorRef>
                                    jar-with-dependencies
                                </descriptorRef>  
                                   </descriptorRefs>
                                   <descriptors>
                                       <descriptor>src/assembly/assembly.xml</descriptor>
                                   </descriptors>
                            <archive>
                                <manifest>
                                   <mainClass>com.sarm.myproject.XMLParser.LPUnMarshaller</mainClass>
                                </manifest>
                            </archive>
                        </configuration>

            </plugin>

вот мой дескриптор assembly.xml, я сделал id таким же, как descritpor ref, поскольку он создавал другую банку для этого дескриптора. Таким образом, у меня есть два дескриптора, один из которых представляет собой дескриптор jar-with-dependents ref, а один - нижний дескриптор, в этом случае происходит то, что он создает две банки, а вторая банка перезаписывает предыдущую банку. Как можно включить эти два в одну банку.

<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">
  <id>jar-with-dependencies</id>
  <formats>
    <format>jar</format>
  </formats>


    <fileSets>
    <fileSet>
      <directory>${basedir}</directory>
      <includes>
        <include>*.xml</include>
      </includes>

  <excludes>
        <exclude>30000dests.xml</exclude>

      </excludes>

    </fileSet>
    <fileSet>
      <directory>${basedir}/test</directory>
      <includes>
        <include>*.xml</include>
      </includes>

    </fileSet>
  </fileSets>
</assembly>

Редактирование: я пробовал некоторые другие подходы, и я видел, что если я использую assembly.xml в качестве дескриптора, новый баннер создается вместе с любым другим банком по умолчанию, который также создается. Так что я получаю две банки. Метка по умолчанию - это исполняемый файл, такой как плагин jar. даже если плагин сборки настроен на наличие manifest.mf с моим основным именем класса, jar, созданный через assmbly.xml, не является исполняемым и имеет папку имени моего проекта с исполняемым банком внутри него.

Я использую mvn clean install для создания моего проекта и файла jar.

Теги:
maven
jar

1 ответ

0

Вы должны создать два модуля, которые производят две банки. Обычно maven собирается создать один файл jar для каждого модуля с именем модуля в качестве имени jar. Maven рекомендует, чтобы каждый модуль имел один выходной артефакт.

Если у вас есть проблемы с дублированием кода. Вы можете наследовать соответствующий материал, имея родительский pom.

  • 0
    Спасибо за ответ. Идея состояла в том, чтобы иметь только одну банку. С зависимостями И внешними файлами. Две банки, одна из которых имеет libs, а другая - только внешняя, а вторая - даже без уроков, они мне не очень помогут. Я буду работать только банку. Кроме того, банки приходят в разобранном виде. Если я использую ассемблер.xml с наборами зависимостей, ТОГДА у меня могут быть фляги, но я пропускаю код. Почему скомпилированные классы не упаковываются вместе с jar-файлом, созданным с помощью assembly.xml. Мне очень понравилась идея использовать файл assembly.xml, он настолько гибкий.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню