2015-08-08 194 views
-1

是否可以告诉Maven或其常用插件之一将最终程序集中的一个依赖JAR打包为JAR文件在Maven项目中包含完整的依赖JAR作为JAR

ie如果我依赖于org.some-group:some-artifact:1.2.3,Maven插件只会将整个some-artifact-1.2.3.jar填充到我的最终JAR文件中?

+0

是否要创建包含所有第三个库罐子的独立jar文件? –

+0

你的意思是像'mvn install assembly:single'? –

+0

@NiteshVirani,我只是有一个指定的依赖关系,我想将其整个JAR文件填充到我最终组装好的JAR文件中*而不打开它*!我希望所有其他依赖项都能正常处理。 – 0xbe5077ed

回答

0

如果我清楚地理解你的问题,你需要一个特定的jar添加到您的产生罐子,在这种情况下,你可以使用使用classifiermaven-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配置可能会给你一个想法从哪里开始,以及如何将特定的jar包含到最终的罐子中

相关问题