2015-08-08 3 views
-1

Можно ли сообщать Maven или одному из своих обычных плагинов для упаковки одного из моих JAR-зависимостей в финальной сборке в виде файла JAR?Включить всю зависимость JAR как JAR в проекте maven

т.е. Если я завишу от org.some-group:some-artifact:1.2.3, то Maven плагин просто набивать весь some-artifact-1.2.3.jar в мой последний файл JAR?

+0

Вы хотите создать независимый файл jar, который также включает в себя все ваши банки с третьей библиотекой? –

+0

вы имеете в виду как 'mvn install сборка: одиночный'? –

+0

@NiteshVirani, у меня есть только одна назначенная зависимость, где я хочу записать весь JAR-файл в свой последний собранный JAR-файл * без его распаковки *! Я хочу, чтобы все мои другие зависимости обрабатывались нормально. – 0xbe5077ed

ответ

0

Если я ясно понял ваш вопрос, вам нужно добавить одну конкретную банки в генерируемой банку, в этом случае вы можете использовать использовать classifier с maven-assembly-plugin

pom.xml

<dependencies> 
    <dependency> 
     <groupId>com.example</groupId> 
     <artifactId>jar-with-dependencies-module</artifactId> 
     <version>1.0.0-SNAPSHOT</version> 
     <classifier>jar-with-dependencies</classifier> 
    </dependency> 
    </dependencies> 

    <build> 
    <plugins> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-assembly-plugin</artifactId> 
     <version>2.3</version> 
     <configuration> 
      <appendAssemblyId>false</appendAssemblyId> 
      <descriptors> 
      <descriptor>src/main/assembly/assembly.xml</descriptor> 
      </descriptors> 
     </configuration> 
     <executions> 
      <execution> 
      <phase>package</phase> 
      <goals> 
       <goal>single</goal> 
      </goals> 
      </execution> 
     </executions> 
     </plugin> 
    </plugins> 
    </build> 

assembly.xml

<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>final-assembly</id> 
    <formats> 
    <format>jar</format> 
    </formats> 

    <dependencySets> 
    <!-- Include the jar-with-dependencies --> 
    <dependencySet> 
     <includes> 
     <include>org.some-group:some-artifact:1.2.3</include> 
     </includes> 
     <useProjectArtifact>false</useProjectArtifact> 
     <!-- Don't use transitive dependencies since they are already included in the jar --> 
     <useTransitiveDependencies>false</useTransitiveDependencies> 
    </dependencySet>t> 
    </dependencySets> 
</assembly> 

Ab ove конфигурации могут дать вам представление о том, с чего начать и как вы можете включить конкретные баночки в свою последнюю банку

Смежные вопросы