Стратегия объединения плагинов Maven Assembly - PullRequest
0 голосов
/ 24 августа 2018

Я пытаюсь преобразовать сборку проекта Scala / Java из sbt в Maven.Я запустил проект без проблем, за исключением случаев, когда я пытался упаковать толстую банку.

У меня возникают некоторые проблемы при попытке написать стратегию слияния.Вот код, который я пытаюсь преобразовать из build.sbt:

assemblyMergeStrategy in assembly := {
  case PathList("META-INF", "MANIFEST.MF")  => MergeStrategy.discard
  case PathList("META-INF", xs @ _*)        => MergeStrategy.first
  case x                                    => MergeStrategy.first
}

Я пытаюсь использовать плагин сборки Maven с пользовательским дескриптором.Я играл с предоставленными обработчиками дескриптора контейнера, но ни один из них не сливается так, как это делает sbt.Вот что у меня есть:

<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.0.0"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.0.0 http://maven.apache.org/xsd/assembly-2.0.0.xsd">
<id>my-project</id>
<formats>
    <format>jar</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>

<dependencySets>
    <dependencySet>
        <outputDirectory>/</outputDirectory>
        <useProjectArtifact>true</useProjectArtifact>
        <unpack>true</unpack>
        <scope>runtime</scope>
    </dependencySet>
</dependencySets>

<containerDescriptorHandlers>
    <containerDescriptorHandler>
        <handlerName>metaInf-services</handlerName>
    </containerDescriptorHandler>
    <containerDescriptorHandler>
        <handlerName>metaInf-spring</handlerName>
    </containerDescriptorHandler>
    <containerDescriptorHandler>
        <handlerName>plexus</handlerName>
    </containerDescriptorHandler>
</containerDescriptorHandlers>

Есть ли способ издеваться над MergeStrategy из сборки sbt?

1 Ответ

0 голосов
/ 30 августа 2018

Во время моего "приключения" на миграции сборки из Maven в SBT Я думаю, что коснулся аналогичной основы, и я могу предоставить некоторую информацию.

Вы можете сделать одно или оба:

Сводка

Поскольку единственное sbt assembly MergeStrategy вас должно беспокоить - это MergeStrategy.first ваша сборка maven должна быть в порядке, потому что это установка по умолчанию в Maven.Баночка будет иметь разное содержимое, но она будет работать одинаково

Если я что-то упустил, пожалуйста, предоставьте более подробную информацию.

...